SmtpClient Отправка неверных идентификаторов сообщений - PullRequest
2 голосов
/ 03 сентября 2010

Я написал автоматизированный электронный почтовый ящик для счетов моей компании.Все было хорошо и здорово, пока я не наткнулся на пару электронных писем, которые не были доставлены.

При дальнейшей проверке наш ИТ-гуру обнаружил, что сообщения, отправленные электронной почтой, имеют неправильные заголовки MessageID.

Message-ID: <98bcd4e6-be30-4b22-8026-6047c8231b1f>

Где они должны выглядеть примерно так:

Message-ID: <F09A215A213060419E28A88E85FDC8FD0CCEB91C23@EXCHANGE-SERVER.MYDOMAIN.mycompany.com>

Я искал в Интернете «недопустимый идентификатор сообщения», связанный с.NET SqlClient безуспешно.Это довольно последний рычажный стержень во всей этой системе, надеюсь, есть ответ.

Код:

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);

1 Ответ

3 голосов
/ 03 сентября 2010

У меня была похожая проблема на RHEL-сервере, оказалось, что мой Sendmail не был настроен должным образом. Я думаю, что вы должны проверить настройки Exchange.

Вы также можете установить Идентификатор сообщения явно, exchange будет использовать этот Идентификатор сообщения для отправки электронного письма.

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