保存已发送和接收标识为C#的电子邮件

时间:2016-12-06 15:05:02

标签: c# email outlook

我编写了一个C#表单应用程序,可以使用Outlook 2013发送和接收电子邮件。我使用MAPI namespeace。(“Outlook._NameSpace _ns = _app.GetNamespace(”MAPI“);”)。 我的问题是:如何为电子邮件创建标识符? 我想将它保存到一个SQL数据库表中,然后识别表是否已包含此邮件。 我找到了mail.CreationTime和mail.SenderEmailAddress,但是在send方法(代码最后一行)之后,邮件已经是空的。 谢谢任何帮助。

我发送了我的发送消息代码:

     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;

1 个答案:

答案 0 :(得分:1)

使用MailItem.EntryID。请注意,如果将邮件移动到其他文件夹,它将会更改。