SmtpClient 发送错误的 MessageID
我为我公司的发票编写了一个自动电子邮件程序。一切都很顺利,直到我遇到了几封未送达的电子邮件。
经过进一步检查,我们的 IT Guru 发现电子邮件发送者发送的消息具有不正确的 MessageID 标头。
Message-ID:< 98BCD4E6-BE30-4B22-8026-6047C8231B1F>
在其中应该看起来像这样:
message-id: 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);
I've written an automated e-mailer for my company's invoices. Things are all fine and dandy till I ran across a couple emails that weren't getting delivered.
Upon further inspection our IT Guru found that the messages sent by the emailer have incorrect MessageID headers.
Message-ID: <98bcd4e6-be30-4b22-8026-6047c8231b1f>
Where they should look something like this:
Message-ID: <F09A215A213060419E28A88E85FDC8FD0CCEB91C23@EXCHANGE-SERVER.MYDOMAIN.mycompany.com>
I've looked around the internet for 'invalid message-id' related to .NET's SqlClient with no success. This is prettymuch the last lynch-pin in this whole system, hopefully there's an answer out there.
Code:
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);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在 RHEL 服务器上遇到了类似的问题,结果是我的 Sendmail 没有正确配置。我认为你应该检查 Exchange 设置。
您还可以明确设置消息 ID,Exchange 将使用该消息 ID 发送电子邮件。
I had similar problem on RHEL server, turned out my Sendmail was not configured properly. I think you should check Exchange settings.
You can also set the Message ID explicitly, exchange will use that Message-ID to send an email.