单击发送时将Mailitem从草稿移动到自定义文件夹时发出警告

时间:2014-07-18 05:48:35

标签: c# outlook vsto outlook-addin

场景:假设草稿中有一个MailItem,我将其打开并单击“发送”按钮。

操纵Item_Send将邮件项目移动到自定义文件夹

void Application_ItemSend(object objItem, ref bool blCancel)
        {
                Outlook.MailItem mailItem = objItem as Outlook.MailItem;
                if (mailItem != null)
                {
                    if (mailItem.Mileage != null)
                    {
                        blCancel = true;
                        string folderPath =
                          Application.Session.DefaultStore.GetRootFolder().FolderPath
                          + Utilities.OUTBOXPATH;
                        Outlook.Folder folder = GetFolder(folderPath);
                        if (folder != null)
                        {
                            mailItem.Move(folder);
                        }
                    }
                }

        }

现在MailItem移动到新文件夹ItemAdd事件

private void OutboxItems_ItemAdd(object objItem)
{
        if (objItem is MailItem)
        {
            Outlook.MailItem mailItem = objItem as Outlook.MailItem;

            if (mailItem != null)
            {
                (mailItem as _MailItem).Send();
            }
        }
}

但在它之间它会发出警告 尝试的操作失败。无法找到对象。

任何人都可以告诉我们原因是什么?

1 个答案:

答案 0 :(得分:0)

您不应该移动Outlook尝试发送的邮件。您可以改为设置MailItem.SaveSentMessageFolder属性 - 在实际发送邮件后,Outlook会将邮件移到那里。