2016-07-14 116 views
1

时收到COMException抛出下面的代码片段让我达到行Outlook的插件保存电子邮件

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

当“COMException”。 该事件正确触发并触发事件处理程序。

>InboxFolder_ItemAdd(object o)

是在catch块引发的异常-消息是一样的东西:

> 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); 
    }   
} 

回答

0

另存为需要与文件名的全路径:

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

是的,这就是它!谢谢 :) – Zermatzor