2010-04-19 128 views
72

自從我們從.NET Framework 1.1切換到3.5框架以來,我一直在使用System.Net命名空間,但是’有一件事’因爲我一直困惑。 MailMessage類中的SenderFrom屬性之間有什麼區別?MailMessage,發件人和發件人屬性之間的區別

它們是否都是相同的,如果沒有,是否有理由將SenderFrom一起使用?

例如:

從電子郵件維基
Using m As New System.Net.Mail.MailMessage() 
    m.Sender = New System.Net.Mail.MailAddress("[email protected]", "Name here") 
    m.From = New System.Net.Mail.MailAddress("[email protected]", "Name here") 

    m.Subject = "Test" 
    m.Body = "Test" 

    Dim client As New System.Net.Mail.SmtpClient("mymailserver.com") 
    client.Send(m) 
End Using 
+5

在System.Net.Mail實現的情況下,沒有區別。當調用SmtpTransport.SendMail時,它會執行這個'message.Sender!= null? message.Sender:message.From'。結果是SmtpClient不允許您爲發件人和發件人發送不同的值 – Sam 2014-12-04 04:10:20

回答

57

摘錄:

頭字段: 消息頭應至少包括以下字段:

來自:電子郵件地址,以及可選的作者姓名。除了通過更改帳戶設置之外,許多電子郵件客戶端不可更改。

另請注意,「From:」字段不必是電子郵件的真正發件人。原因之一是,僞造「From:」字段非常容易,並且讓消息看起來來自任何郵件地址。可以對電子郵件進行數字簽名,這很難僞造,但這種簽名需要額外的編程,並且通常需要外部程序進行驗證。有些互聯網服務提供商不會轉發聲稱來自未由他們託管的域名的電子郵件,但很少(如果有的話)檢查以確保在「發件人:」字段中指定的人或甚至是電子郵件地址是與連接相關聯。一些ISP將電子郵件認證系統應用於通過其MTA發送的電子郵件,以允許其他MTA檢測可能來自他們的僞造垃圾郵件。

發件人:字段(祕書,列表管理器等):演技代表在從列出的作者的實際發件人地址。在http://en.wikipedia.org/wiki/Email

詳細例如Gmail使用的從/發件人域發送不同的電子郵件不會忽略電子郵件不是您的Gmail帳戶(驗證後)。

23

我發現this解釋很容易理解(強調我的)。

其中有相當多種操作的一個區域是 概念的電子郵件的發件人地址和電子郵件的發件人。

某些電子郵件服務器將接受發件人爲發件人 ,有些電子郵件服務器會自動推斷髮件人,有些需要明確指定發件人 。

通常,發件人是電子郵件消息的實際發件人。 「發件人地址」與此相反,只是電子郵件 中的標題行,可能並不代表任何意義。發件人地址可以通過 完全排除。垃圾郵件發送者可以很容易地欺騙來自 地址。ISP試圖確保垃圾郵件發送者不能欺騙發件人。

相關問題