SmtpClient发送错误的MessageIDs
问题描述:
我为我公司的发票写了一封自动电子邮件。事情都很好,很花哨,直到我遇到了几封未收到的电子邮件。SmtpClient发送错误的MessageIDs
经进一步检查我们的IT大师发现,通过邮件器发送的消息有不正确的邮件ID头。
Message-ID: <98bcd4e6-be30-4b22-8026-6047c8231b1f>
,他们应该是这个样子:
Message-ID: <[email protected]AIN.mycompany.com>
我环顾四周互联网与.NET的SqlClient中没有成功“无效邮件ID”。这是整个系统中的最后一个针脚,希望有一个答案。
代码:
MailMessage message = new MailMessage();
foreach(string recipient in msgRecipients)
{
message.To.Add(new MailAddress(recipient));
}
message.From = new MailAddress(InvoiceEmailerConfig.Section.EmailCourier.FromEmail);
message.ReplyTo = new MailAddress(InvoiceEmailerConfig.Section.EmailCourier.ReplyToEmail);
message.Subject = messageHeading;
message.Body = msgBody;
SmtpClient mailer = new SmtpClient(SmtpServer, SmtpServerPort);
mailer.DeliveryMethod = SmtpDeliveryMethod.Network;
mailer.Credentials = new NetworkCredential(SmtpLogin, SmtpPassword);
mailer.Send(message);
答
我有RHEL服务器上类似的问题,原来我的Sendmail的配置不正确。我认为你应该检查Exchange设置。
您还可以设置邮件ID明确,交易所将使用该消息ID发送电子邮件。
MailMessage message = new MailMessage();
message.Headers.Add("Message-ID", "MyMessageID");
您是否知道对消息ID字段有任何规定?它是否必须在交换服务器中引用某些东西,或者我可以随机生成一些@ mydomain.com? – Aren 2010-09-03 18:44:25
我在我们的某个产品中为电子邮件门户手动设置标题,这有助于我协调答复。您可以手动将message-id标头设置为一个有效的message-id,如Alex所示,它应该可以正常工作。 – 2010-09-03 19:07:20
@Wil P:那么你刚刚生成了一个适当长度的随机HEX代码? – Aren 2010-09-03 19:16:41