MailMessage,发件人和发件人属性之间的区别


87

System.Net自从.NET Framework 1.1切换到3.5框架以来,我一直在使用名称空间,但是从那以后一直困扰着我一件事。Sender和类中的From属性有什么区别MailMessage

它们是否相同,如果没有,则可以Sender与一起使用From吗?

例如:

Using m As New System.Net.Mail.MailMessage()
    m.Sender = New System.Net.Mail.MailAddress("test@test.com", "Name here")
    m.From = New System.Net.Mail.MailAddress("test@test.com", "Name here")

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

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

7
对于System.Net.Mail实现,没有区别。调用SmtpTransport.SendMail时会执行此操作message.Sender != null ? message.Sender : message.From。结果是SmtpClient不允许您为发件人和发件人发送不同的值
2014年

Answers:


70

Wiki摘录自电子邮件:

标头字段:邮件标头至少应包含以下字段:

发件人:电子邮件地址,以及作者的姓名(可选)。在许多电子邮件客户端中,除非通过更改帐户设置,否则无法更改。

还请注意,“发件人:”字段不必是电子邮件的真实发件人。原因之一是,很容易伪造“发件人:”字段,并让一条消息似乎来自任何邮件地址。可以对电子邮件进行数字签名,这很难伪造,但是这种签名需要额外的程序,并且经常需要外部程序进行验证。一些ISP不会中继声称不是由其托管的域发出的电子邮件,但是很少(如果有的话)进行检查以确保在“发件人:”字段中指定的人甚至电子邮件地址是唯一的。与连接关联。一些ISP将电子邮件身份验证系统应用于通过其MTA发送的电子邮件,以允许其他MTA检测可能来自其的伪造垃圾邮件。

发件人:代表发件人:字段中列出的作者的实际发件人的地址(秘书,列表管理员等)。

有关http://en.wikipedia.org/wiki/Email的详细信息

例如,gmail使用发件人/发件人字段从与您的gmail帐户不同的电子邮件地址发送电子邮件(经过验证)。


27

我发现这个解释很容易理解(强调我的意思)。

电子邮件的发件人地址和电子邮件的发件人的概念是其中一种操作非常多种的领域。

一些电子邮件服务器会将发件人地址视为发件人,一些电子邮件服务器自动推断出发件人,而另一些则要求明确指定发件人。

通常,发件人是电子邮件的实际发件人。相反,发件人地址只是电子邮件中的标题行,可能会也可能不会意味着任何东西。发件人地址通常可以完全忽略。垃圾邮件发送者可以轻易地欺骗发件人地址。ISP试图确保垃圾邮件发送者不会欺骗发件人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.