2
我爲我公司的發票寫了一封自動電子郵件。事情都很好,很花哨,直到我遇到了幾封未收到的電子郵件。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);
您是否知道對消息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