C# 如何在不使用邮件正文的情况下比较电子邮件?
如何在不使用邮件正文的情况下比较电子邮件 例如:C# 如何在不使用邮件正文的情况下比较电子邮件?,c#,office-interop,outlook-addin,outlook-redemption,addin-express,C#,Office Interop,Outlook Addin,Outlook Redemption,Addin Express,如何在不使用邮件正文的情况下比较电子邮件 例如: 约翰给玛丽发了一封信,并把这封信“保存”在我的附件中 两者都有相同的addin 当Mary收到消息时,必须对该消息进行分类,因为John已经“保存”了该消息 如何在不使用邮件正文的情况下确定Mary收到的邮件与John发送的邮件(“保存”)相同 目前,这项工作如下所示,使用以下信息生成哈希: 寄件人 收件人 主题 消息正文文本 此散列存储在数据库中,当Mary的Outlook触发新邮件事件时,将生成一个具有相同信息的散列,并在数据库中进
- 约翰给玛丽发了一封信,并把这封信“保存”在我的附件中
- 两者都有相同的addin
- 当Mary收到消息时,必须对该消息进行分类,因为John已经“保存”了该消息李>
如何在不使用邮件正文的情况下确定Mary收到的邮件与John发送的邮件(“保存”)相同 目前,这项工作如下所示,使用以下信息生成哈希:
- 寄件人
- 收件人
- 主题
- 消息正文文本
public string GetAssinatura(Outlook.MailItem email)
{
try
{
string corpoEmail = email.Body;//this is not performatic with big messages
var hash = GenerateHash(corpoEmail);
}
}
对话参与者可以回复或转发邮件,因此Outlook和大多数最常用的电子邮件客户端会将主题更改为默认主题,例如Re:subject。
因此,不可能只有参与者和主题的散列。使用属性:
MailItem.SentOn
有可能生成那个散列。发件人Outlook仅在发送邮件后才具有该信息。因此,当在item\u Send文件夹中添加一个新项目时,代码必须运行。我假设发件人+收件人+主题还不够。@KennethGarza不是,我的例子是一个坏例子,更像是,如果邮件从a公司的人发送到B公司的人,两者都有相同的加载项(数据库),我需要确定这种情况。。如果使用发件人+收件人+主题,两封信息相同的邮件将返回相同的哈希值…我怀疑是这样的。。。似乎什么都想不出来。我建议发布一个代码示例,说明什么是未执行的。对于您试图获取的内容,可能还有其他选项。发件人/收件人/主题不够唯一。我认为你不能避免使用Body。嗨@DmitryStreblechenko,这是不够的,因为在回复和转发邮件时,Outlook总是将主题更改为相同的模式。例:RE:主题。在这些情况下,散列将与另一个散列相同,我的应用程序认为消息已经存储。我需要的东西,我可以从发件人和收件人都得到。