2016-01-22 43 views
0

我創建了一個C#應用程序,只要用戶輸入信息就會發送一封電子郵件。同一個應用程序可用於發送對原始電子郵件的回覆。我的問題是,Outlook不會將郵件分組,而是將每個郵件視爲唯一的郵件。我已經讀過一個Message-ID可以作爲保持電子郵件的參考。但是我找不到有關如何將其應用於我的代碼的示例。使用唯一的消息ID創建Outlook電子郵件

Outlook.Application olApp = new Outlook.Application(); 
Outlook._MailItem eMailItem = (Outlook._MailItem)(olApp.CreateItem(Outlook.OlItemType.olMailItem)); 

eMailItem.To = "[email protected]"; 
eMailItem.Subject = pMailSubject; 
eMailItem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML; 
eMailItem.HTMLBody = pMailBody; 

有沒有一種方法來設置一個唯一的消息ID,這樣,每當一個新的電郵是關於特定主題是郵件ID可以用來保存所有的電子郵件一起在Outlook發送?

回答

0

您需要在收件箱中找到原始郵件,然後在其中回覆()。

try 
{ 
    Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); 
    Outlook._NameSpace ns = app.GetNamespace("MAPI"); 
    ns.Logon(null, null, false, false); 
    Outlook.MAPIFolder inboxFolder = ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox); 

    // loop through the folder to find the email - match on subject 
    for (int i=1; i <= inboxFolder.Items.Count; i++) 
    { 
    Outlook._MailItem item = (Microsoft.Office.Interop.Outlook._MailItem)inboxFolder.Items[i]; 
    if (item.Subject == eMailItem.Subject) 
    { 
     // found original message, reply to it 
     Outlook._MailItem reply = item.Reply(); 
     reply.HTMLBody = eMailItem.HTMLBody; 
     reply.Send(); 
     break; 
    } 
    } 
} 
catch 
{ 
} 
+0

沒有原始郵件。那麼你打算怎麼做? –

相關問題