是否有可能捕获“消息ID”与SmtpClient发送的电子邮件的?(Is it possible t

2019-07-29 14:08发布

使用SmtpClientMailMessage类在.NET通过本地邮件服务器(发送电子邮件hMailServer ),我发现目前没有办法让Message-ID发送消息的标头值。

背后的想法

我想以编程方式跟踪无法投递的邮件,所以我必须找到一种方法,从拒绝某个消息目标SMTP服务器识别的答复。

现在我认为简单地记住Message-ID SMTP头值并解析接收邮件此ID。

我试图检查Headers采集发送消息之后,但我没有找到任何Message-ID

我的问题

是否有可能获得Message-ID ,我的SMTP服务器发送过程中添加标头值MailMessage实例?

2012-05-27更新

按照这个例子我已经成功地试图手动生成一个Message-ID是在发送之前对我自己。

我的所有示例工作至今,如此看来 ,这是我的问题的解决方案。

Answer 1:

标准的解决你的问题是VERP。 阅读伯恩斯坦的原创文章,找出原因Message-Id等。 是不可靠的。 http://cr.yp.to/proto/verp.txt



Answer 2:

您可以添加自己的消息ID之前发送电子邮件。 我用下面的代码:

Guid id = Guid.NewGuid(); //Save the id in your database 
mensajeEmail.Headers.Add("Message-Id", String.Format("<{0}@{1}>",id.ToString(),"mail.example.com"));

注:我使用下载的消息OpenPop.Net ,我检查message.Headers.InReplyTo财产,并有sended消息ID。



文章来源: Is it possible to capture the “Message-ID” of an email message sent with SmtpClient?