MailMessage From 及Sender的區別

来源:互联网 发布:网络另类说唱歌手 编辑:程序博客网 时间:2024/05/10 09:43

今天在使用 MailMessage 和 SmtpClient 寫寄信程式,按照平常的寫法去做,Compile 沒有問題,但發信時卻出現了 "必須指定來源位址" 的訊息,但原程式和以前沒什麼變啊 (當下看的),後來我去查了一下 MSDN Library,發現了兩個很模棱兩可的屬性:



因為看不懂這兩個的區別 (說明都一模一樣 Orz),所以我就開了 Reflector 去解了 System.dll 中的 System.Net.Mail.SmtpClient 中的 Send() 方法,發現它會檢查 From 屬性是否存在,而我程式中只設定了 Sender,所以才會一直丟錯,後來我將 Sender 改設為 From 就解決問題了,不過我還是很好奇這兩個有什麼差別,所以做了一下實驗,發現:

  • 當 Sender 和 From 有同時指定時,SmtpClient 會以 Sender 為主。
  • 當 Sender 和 From 之間若有無效 Email Address (或兩者都是無效 Email Address) 時,Mail Server 會自動以登入帳戶的 Email Address 為主。
  • 當 Sender 和 From 使用的名稱不同時,SmtpClient 會取用 From 的名稱。

簡單的說,當 Sender 與 From 都有設定時,Mail Server 會取用 Sender 的設定發信,但郵件上的名稱會使用 From 的設定,而若不需要 Sender 和 From 同時設定時,則 Sender 可以免設,但 From 一定要設。


轉自:http://www.dotblogs.com.tw/regionbbs/archive/2011/06/29/difference.between.from.and.sender.in.mailmessage.class.aspx

0 0