2014-08-31 6 views
0

У меня возникли проблемы с выбором профиля Outlook 2013. Я создал два профиля OutLook, Том и Джон. Профиль Tom был создан сначала, чем профиль John.Выбор профиля Outlook 2013

Скажем, я хочу, чтобы выбрать Джон, это мой код

var oApp = new OutLook.Application(); 
var oNS = (OutLook._NameSpace) oApp.GetNamespace("MAPI"); 
oNS.Logon("John", Missing.Value, true, true); 
var oFolder = oNS.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderInbox); 
oFolder.GetExplorer(false); 
GetSubjectsEmail(oFolder); // this function just prints a list of the email subjects 

Проблема заключается в том, что субъекты электронной почты для профиля Тома напечатаны, а не предметы электронной почты для профиля Джона. Любая помощь?

ответ

1

Если Outlook (который является singleton) уже запущен, Namespace.Logon ничего не сделает - Outlook продолжит использовать текущий профиль.

Вы можете использовать CDO 1.21 (больше не поддерживается) или Redemption (RDOSession .Logon) для входа в другой профиль, но почему бы не добавить оба почтовых ящика в тот же профиль?

+0

Спасибо за ваш ответ. Я часами вытягивал свои волосы. С тех пор я добавил, что John и Tom являются почтовыми ящиками в том же профиле в Outlook, но я не могу найти способ в своем коде, чтобы изменить, какой почтовый ящик (почтовый ящик john или tom mailbox в профиле Outlook) используется, когда я печатаю содержимое папка «Входящие» в моем коде - в настоящее время всегда печатается папка «Входящие» для учетной записи «Том». Любая помощь будет очень оценена - я застрял часами. Пожалуйста помоги. – user3873171

+0

Получил это: http://stackoverflow.com/questions/4558415/c-sharp-winforms-accessing-outlook-with-multiple-mailboxes – user3873171

+0

Не обращайтесь к папкам по имени - это не удастся, поскольку имена зависят от Outlook версии и локали. Используйте коллекцию Namespce.Stores, чтобы пройти через магазины. –

Смежные вопросы