VSTO Outlook加载项不会将项目移动到另一个商店

时间:2018-12-18 17:29:27

标签: c# vsto outlook-addin

我有一个Outlook加载项,它将电子邮件项移动到另一个邮箱中的另一个文件夹。至少,它曾经这样做。现在它不再移动了。我编写了另一个测试加载项,该加载项将电子邮件项移动到当前用户邮箱中的另一个文件夹中并且可以正常工作,所以我的问题是,是否存在将项移动到另一个邮箱中而引起问题的事情?

这里有一些代码可以解释这些事情:

要执行到另一个邮箱的移动,代码使用此行为每个邮箱创建存储,

stores = Globals.ThisAddIn.OutlookApplication.GetNamespace("MAPI").Stores;

然后使用foreach循环遍历每个商店,

foreach (Outlook.Store store in stores)

它将获得当前的收件箱,以供以后使用

destinationMailboxFolderInbox = (Outlook.Folder)store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

如果此商店的DisplayName与我指定为目的地的那个相匹配,它将继续在子文件夹中搜索我想要的那个,

if (store.DisplayName.Equals(destinationMailbox))
{
    foreach (Outlook.Folder myFolder in destinationMailboxFolderInbox.Folders)
    {
        if (myFolder.Name.Equals(destinationMailboxFolder))
        {
            item.Move(myFolder);

问题是,它似乎没有运行最后的foreach循环(遍历文件夹)。

就像我说的那样,当我更改它以使用当前用户的邮箱时,它可以工作。当我将其设置为当前用户可以访问的共享邮箱时,它将不起作用。

我还缺少其他步骤吗?

1 个答案:

答案 0 :(得分:0)

此问题是权限问题或错误。我没有直接解决,而是开发了一种解决方法。

解决方法是创建一个Outlook“快速步骤”按钮来移动电子邮件。 Outlook用户将单击我的VSTO编码的加载项按钮以保存附件,然后单击“快速步骤”按钮将电子邮件移至该文件夹。