C# 使用标识符C保存发送和接收电子邮件
我编写了一个C表单应用程序,可以使用Outlook 2013发送和接收电子邮件。我用MAPI命名和平。Outlook.\u NameSpace\u ns=\u app.GetNamespaceMAPI;。 我的问题是:如何为电子邮件创建标识符? 我想将其保存到sql数据库表中,稍后再识别该表是否已包含此邮件。 我找到了mail.CreationTime和mail.SenderEmailAddress,但在最后一行代码中的send Method之后,邮件已为空。 谢谢你的帮助 我发送我的发送消息代码:C# 使用标识符C保存发送和接收电子邮件,c#,email,outlook,C#,Email,Outlook,我编写了一个C表单应用程序,可以使用Outlook 2013发送和接收电子邮件。我用MAPI命名和平。Outlook.\u NameSpace\u ns=\u app.GetNamespaceMAPI;。 我的问题是:如何为电子邮件创建标识符? 我想将其保存到sql数据库表中,稍后再识别该表是否已包含此邮件。 我找到了mail.CreationTime和mail.SenderEmailAddress,但在最后一行代码中的send Method之后,邮件已为空。 谢谢你的帮助 我发送我的发送消息代
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;
使用MailItem.EntryID。请注意,如果将邮件移动到其他文件夹,它将发生更改。获取一组唯一属性sender、recipient、subject、body、creation date等,将它们连接起来,并使用SHA-1或MD5对结果进行散列。MailItem.EntryID不稳定,不可信任。您可以使用MailItem.conversationIndex