Outlook-addin 在保存电子邮件时抛出 COMException

本文关键字:COMException 电子邮件 保存 Outlook-addin | 更新日期: 2023-09-27 17:56:53

下面的代码片段给了我一个"COMException",当行

>mail.SaveAs(@"C:'Users'Michalczak'Desktop");

已达到。事件正确触发并触发事件处理程序。

>InboxFolder_ItemAdd(object o)

在捕获块中抛出的异常消息类似于:

> You do not have permission to perform this operation.

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    myTestInBox = (Outlook.Folder)this.Application.Session.GetDefaultFolder
                      (Outlook.OlDefaultFolders.olFolderInbox);
    stor.inBox = myTestInBox.Items;
    stor.inBox.ItemAdd += 
         new Outlook.ItemsEvents_ItemAddEventHandler
             (InboxFolder_ItemAdd);
}
private void InboxFolder_ItemAdd(object o)
{
    Outlook.MailItem mail = null;
    if ( o != null && o is Outlook.MailItem)
    {
        mail = (Outlook.MailItem)o;
    }
    try
    {
        mail.SaveAs(@"C:'Users'Michalczak'Desktop");
    }
    catch (System.Runtime.InteropServices.COMException ce)
    {
        MessageBox.Show(ce.Source);
        MessageBox.Show(ce.Message);
    }        
}

Outlook-addin 在保存电子邮件时抛出 COMException

> SaveAs 需要文件名的完整路径:

mail.SaveAs(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"'" + filename + ".msg");