2011-07-29 75 views
10

這是App.Config中我的SMTP設置:爲什麼.NET SmtpClient發送的電子郵件缺少Message-Id?

<system.net> 
    <mailSettings> 
     <smtp from="Reminder &lt;[email protected]&gt;"> 
     <network host="mail.myserver.net" port="587" password="my password" userName="[email protected]" enableSsl="true"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

這就是我如何發送電子郵件:

message.SubjectEncoding = System.Text.Encoding.UTF8; 
message.BodyEncoding = System.Text.Encoding.UTF8; 
smtpClient.Send(message); 

這是工作!但唯一的問題是,我的電子郵件將進入垃圾郵件文件夾,這是因爲他們的頭部缺少Message-Id。我在Thunderbird中使用相同的帳戶,當我使用thunderbird發送電子郵件時,Message-Id被添加到我的電子郵件中,但不會發生從我的應用程序發送的電子郵件。

我可以像手動添加標題:

message.Headers.Add("Message-Id","<3BD50098E401463AA228377848493927-1>"); 

但這個ID是不是一個有效的消息ID,我仍然會得到負的垃圾郵件分數吧。 任何想法爲什麼發生這種情況?

這是我在雷鳥:
主持人:mail.korax.net/
認證:普通密碼/
端口:587/
安全:STARTTLS

回答

7

您的SMTP服務器是配置爲自動包含消息ID。如果生成自己的ID,它應該遵循RFC 2822 Section 3.6.4

+0

其實我問我的主機來修復它,他們做了:)但您的解決方案是,如果他們不這樣做,是對我:)謝謝,我能做到的最好。 – Tohid

相關問題