2012-05-30 15 views
4

На основании поиска Выполнено в Outlook Я хочу сохранить результаты на локальном диске Как я могу продолжить? Есть ли способ в C# или ASP.Net реализовать его? Большое спасибо.Автоматическое сохранение электронной почты Outlook в папку с помощью C#

+1

http://stackoverflow.com/questions/2055811/get-unread-mails-from-outlook –

+0

Спасибо за ответ. Позвольте мне попробовать это. Пожалуйста, дайте мне знать, есть ли какие-либо дополнения в Outlook для реализации того же – user829222

ответ

2

Вы можете написать свой собственный плагин Outlook, который выполняет эту работу.

Запустите Visual Studio, создайте новую надстройку Outlook. В зависимости от вашей версии Visual Studio и Office, возможно, вам нужно установить VS Tools для Office Runtime (если я правильно помню).

При запуске зарегистрируйте обработчик для Application.ItemContextMenuDisplay и в обработчике событий добавьте новую запись меню, скажем, «Сохранить сообщения на диск», а также создайте обработчик событий, который получает выбранные сообщения и сохраняет их где-то.

Что-то вроде этого:

using Office = Microsoft.Office.Core; 
using Outlook = Microsoft.Office.Interop.Outlook; 

private void MyAddIn_Startup(object sender, System.EventArgs e) 
{ 
    Office.CommandBarButton bts = (Office.CommandBarButton)CommandBar.Controls.Add(); 
    bts.Visible = true; 
    bts.Caption = "Save selected messages to disk"; 
    bts.Click += new Office._CommandBarButtonEvents_ClickEventHandler(bts_Click); 
} 

private void bts_Click(Office.CommandBarButton Ctrl, ref bool CancelDefault) 
{ 
    Outlook.Selection list = this.Application.ActiveExplorer().Selection; 

    string fileName = ""; 

    Object selObject; 
    Outlook.MailItem mailItem; 

    for (int i = 1; i < list.Count + 1; i++) 
    { 
     selObject = this.Application.ActiveExplorer().Selection[i]; 

     if (selObject is Outlook.MailItem) 
     { 
      mailItem = (selObject as Outlook.MailItem); 

      if (mailItem != null) 
      { 
       fileName = Path.GetTempFileName(); 
       mailItem.SaveAs(fileName, Outlook.OlSaveAsType.olMSG); 
      } 
     } 
    } 
} 

Это не имеет никакого контроля ошибок, без оптимизации, и это сохраняет сообщения во временный файл, но вы можете получить основы.

Это также не автоматическое сохранение, но вы должны выбрать сообщения, щелкнуть правой кнопкой мыши и выбрать новый пункт меню.

Смежные вопросы