使用SmtpClient
和MailMessage
类在.NET通过本地邮件服务器(发送电子邮件hMailServer ),我发现目前没有办法让Message-ID
发送消息的标头值。
背后的想法
我想以编程方式跟踪无法投递的邮件,所以我必须找到一种方法,从拒绝某个消息目标SMTP服务器识别的答复。
现在我认为简单地记住Message-ID
SMTP头值并解析接收邮件此ID。
我试图检查Headers
采集发送消息之后,但我没有找到任何Message-ID
。
我的问题
是否有可能获得Message-ID
,我的SMTP服务器发送过程中添加标头值MailMessage
实例?
2012-05-27更新
按照这个例子我已经成功地试图手动生成一个Message-ID
是在发送之前对我自己。
我的所有示例工作至今,如此看来 ,这是我的问题的解决方案。
标准的解决你的问题是VERP。 阅读伯恩斯坦的原创文章,找出原因Message-Id
等。 是不可靠的。 http://cr.yp.to/proto/verp.txt
您可以添加自己的消息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?