2016-07-14 118 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