发送imap消息并检查回复

时间:2014-01-27 13:24:43

标签: c# imap

我想用smtp / imap发送电子邮件,并在一段时间后检查回复。 所以我正在寻找一个开源库,它提供了一个API,用于发送电子邮件并在以后检查回复。

据我所知,每条消息都已包含唯一ID,我看到很多库允许按ID下载消息。但是在发送电子邮件时我没有看到返回此ID的SMTP客户端。

这种API很有用(S22.Imap):

using (ImapClient Client = new ImapClient("imap.gmail.com", 993,
 "username", "password", AuthMethod.Login, true))
{
    uids = GetUIdsFromMyDatabase();//how can that be achieved?
    IEnumerable<MailMessage> messages = Client.GetMessages(uids);
}

但它留下了2个问题:
1.我在哪里可以获得已发送的消息ID? 2.如何在回复及其父级(已发送的)之间建立连接?

1 个答案:

答案 0 :(得分:3)

SMTP客户端可以自己创建消息ID。他们只需要确保左侧有点独特。

如果客户端没有为SMTP服务器提供ID,但它不会告诉SMTP客户端ID是什么。一种简单而安全的方法是通过MD5或SHA1哈希来提供您要发送的消息(整个消息),对结果进行base64编码并生成表单的ID&lt; hash@doma.in> hash是base64'd哈希,doma.in是From字段的域。

连接回复的传统方法是使用Message-ID和References。发送回复时,将引用设置为原始邮件的引用和邮件ID字段的串联。