SmtpClient 发送错误的 MessageID

发布于 2024-09-16 22:12:25 字数 986 浏览 1 评论 0原文

我为我公司的发票编写了一个自动电子邮件程序。一切都很顺利,直到我遇到了几封未送达的电子邮件。

经过进一步检查,我们的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒解孤独 2024-09-23 22:12:25

我在 RHEL 服务器上遇到了类似的问题,结果是我的 Sendmail 没有正确配置。我认为你应该检查 Exchange 设置。

您还可以明确设置消息 ID,Exchange 将使用该消息 ID 发送电子邮件。

MailMessage message = new MailMessage();
message.Headers.Add("Message-ID", "MyMessageID");

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.

MailMessage message = new MailMessage();
message.Headers.Add("Message-ID", "MyMessageID");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文