2016-12-06 2 views
1

Outlook 2013を使用して電子メールを送受信できるC#フォームアプリケーションを作成しましたが、MAPIの名前ペースで使用しました( "Outlook._NameSpace _ns = _app.GetNamespace(" MAPI "); ")。 私の問題は:どのように電子メールの識別子を作成するのですか? 私はそれをSQLデータベーステーブルに保存し、テーブルに既にこのメールが含まれているかどうかを認識したいと思います。 私はmail.CreationTimeとmail.SenderEmailAddressを見つけましたが、最後の行のコードでメソッドを送信した後、メールはすでに空です。 ありがとうございました。保存して識別子Cのメールを受信します。

私は私の送信メッセージのコードを送信します。

 Outlook._Application _app = new Outlook.Application(); 
Outlook._NameSpace _ns = _app.GetNamespace("MAPI"); 
Outlook.MAPIFolder inbox = _ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); 
Outlook.MailItem mail = (Outlook.MailItem)_app.CreateItem(Outlook.OlItemType.olMailItem); 
mail.To = ActEmail.To; 
mail.CC = ActEmail.CC; 
mail.Subject = ActEmail.Subject; 
mail.Body = ActEmail.Body; 
mail.Importance = Outlook.OlImportance.olImportanceNormal; 
if(ActEmail.Attachments.Count != 0) 
{ 
foreach (Attachment item in ActEmail.Attachments) 
{ 
mail.Attachments.Add(item.Attachment1, Outlook.OlAttachmentType.olByValue, 1, item.Attachment1);//.Substring(item.Attachment1.LastIndexOf('\') + 1)); 
} 
} 
((Outlook._MailItem)mail).Send(); 
string theString = mail.CreationTime + mail.SenderEmailAddress; 
+0

SHA-1またはMD5を使用して、一意のプロパティ(送信者、受信者、件名、本文、作成日など)を束ね、連結し、結果をハッシュします。 'MailItem.EntryID'は揮発性であり、信頼できません。 –

答えて

1

使用MailItem.EntryID。メッセージが別のフォルダに移動さ​​れた場合は変更されますので注意してください。

+0

MailItem.conversationIndexを使用することができます –

関連する問題