2010-04-19 133 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试图确保垃圾邮件发送者不能欺骗发件人。

相关问题