2016-07-14 7 views
1

фрагмент кода ниже дает мне «COMException», когда линияOutlook, надстройка бросает COMException при сохранении Email

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

ответ

0

SaveAs требует полный путь с именем файла:

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

Да вот оно! спасибо :) – Zermatzor