Sea*_*man 7 .net c# email smtp guid
我正在寻找一种方法来在使用.NET SmtpClient类(在System.Net.Mail中)发送电子邮件时唯一标识电子邮件,即
SmtpClient client = new SmtpClient(smtpServer, smtpPort);
client.EnableSsl = false;
MailAddress from = new MailAddress(fromAddress);
MailAddress to = new MailAddress(destinationAddress);
MailMessage message = new MailMessage(from, to);
message.Body = body;
message.Subject = subject;
Run Code Online (Sandbox Code Playgroud)
等等
我可以使用message.Headers(将其设置为System.Guid)设置'Message-Id'属性,但它被smtp服务器覆盖,我不知道如何访问smtp服务器生成的消息ID.
我需要一个客户端系统来打开接收电子邮件的pop3邮箱,并能够通过这个唯一标识符跟踪它.
任何人都知道这是否可行?
一种选择是将自定义标头附加到邮件.自定义标头用X-前缀表示.因此,在这种情况下,您可以创建一个X-Unique-Id不会被覆盖的被调用者.
但是,并不一定所有邮件客户端都允许基于自定义标头进行过滤/搜索,您必须检查客户端.
每个MSDN:
发送MailMessage实例时,将包括添加的任何自定义标头.
只需添加到message.Headers集合中:
message.Headers["X-Unique-Id"] = "1";
另一种选择是使用特殊的reply-to:或from:包含消息id的值.例如,如果您的回复地址是auto@responder.net,则将其更改为auto+{unique-id }@responder.net.许多邮件服务器(包括gmail)会将+视为通配符,并将邮件正常传递给auto@responder.net.这是一种常用方法,用于允许用户通过电子邮件直接回复应用内消息.