Я пытаюсь получить доступ к своей папке со спамом в другой учетной записи в моем Outlook.
В моей учетной записи Outlook у меня установлено 3 учетных записи электронной почты, где 2 связаны с работой, а 1 - с личной.
Мне удалось получить доступ к электронной почте в моей основной учетной записи, используя следующий код:
ns = Application.GetNamespace("MAPI");
inbox = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
items = inbox.Items;
Это работает отлично.
Однако, когда я пытаюсь получить доступ к другой учетной записи, я получаю следующую ошибку:
System.Runtime.InteropServices.COMException: «Операция не выполнена из-за проблемы с реестром или установкой. Перезапустите Outlook и попробуйте снова. Если проблема не устраняется, переустановите. '
в Microsoft.Office.Interop.Outlook.NameSpaceClass.GetSharedDefaultFolder (Получатель получателя, OlDefaultFolders FolderType)
в DemoAntiSpam2.ThisAddIn.ThisAddIn_Startup (Отправитель объекта, EventArgs e) в C: \ Projects \ T \ DemoAntiSpam2 \ DemoAntiSpam2 \ ThisAddIn.cs: строка 29
в Microsoft.Office.Tools.AddInImpl.OnStartup ()
в DemoAntiSpam2.ThisAddIn.FinishInitialization () в C: \ Projects \ T \ DemoAntiSpam2 \ DemoAntiSpam2 \ ThisAddIn.Designer.cs: строка 57
в Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.ExecutePhase (ExecutionPhases executePhases)
в Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IExecuteCustomization2.ExecuteEntryPoints ()
Outlook.NameSpace ns;
Outlook.MAPIFolder inbox;
Outlook.Items items;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
ns = Application.GetNamespace("MAPI");
var recipient = ns.CreateRecipient(recipientAddress);
recipient.Resolve();
if (recipient.Resolved)
{
// Code breaks here.
inbox = ns.GetSharedDefaultFolder(recipient, Outlook.OlDefaultFolders.olFolderInbox);
items = inbox.Items;
items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(items_ItemAdd);
}
}