2009年3月26日 星期四

傳送郵件失敗,郵件標頭中找到無效的字元

再使用.Net .2.0的MAIL Class時
真的很頭痛,實在有太多人遇到
"郵件標頭中找到無效的字元"這個錯誤訊息

發生的可能有幾種,讓我一一列出
1.您的 Email Address 中有不合法的字元例如有""雙引號
2.分隔多個 Email 時不是用 ";" 分號去分隔
3.你的 Domain 是中文,也就是你的電腦名稱是中文
在.Net的原生碼中,這裡的domain
System.Net.Mail.EHelloCommand.PrepareCommand(SmtpConnection conn, String domain)
會去檢查是否有不是 ASCII code 中的字元

至於更細節可以參考我的前篇
System.Net.Mail 發個完美的 Mail 怎麼這麼難?

2 則留言:

wellwind 提到...

您好
我最近也遇到同樣的問題
問題發生在電腦名稱是中文
但是工作用的這台電腦不被允許修改電腦名稱
想請問可有其他解決辦法?

Mr. Programmer 提到...

目前無解,可以尋求第三方軟體比較適合
例如:OpenSmtp