自从我们从.NET Framework 1.1切换到3.5框架以来,我一直在使用System.Net
命名空间,但是有一件事让我感到困惑。 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
答案 0 :(得分:65)
电子邮件中的wiki摘录:
标题字段: 邮件头应至少包含以下字段:
发件人:电子邮件地址,以及可选的作者姓名。在许多电子邮件客户端中,除非通过更改帐户设置,否则无法更改。
另请注意,“发件人:”字段不必是电子邮件的真实发件人。一个原因是很容易伪造“发件人:”字段并让邮件看起来来自任何邮件地址。可以对电子邮件进行数字签名,这很难伪造,但是这种签名需要额外的编程,并且通常需要外部程序来验证。有些ISP不会转发声称来自非托管域名的电子邮件,但很少(如果有的话)检查以确保“发件人:”字段中指定的人员甚至电子邮件地址是一个与连接相关联。一些ISP将电子邮件身份验证系统应用于通过其MTA发送的电子邮件,以允许其他MTA检测可能看起来来自他们的伪造垃圾邮件。
发件人: 实际发件人的地址代表From:字段(秘书,列表管理员等)中列出的作者。
有关http://en.wikipedia.org/wiki/Email
的详情例如,gmail使用from / sender字段从不同的电子邮件地址发送电子邮件,而不是gmail帐户(验证后)。
答案 1 :(得分:25)
我发现this解释很容易理解(强调我的)。
其中有一个区域有很多种操作 电子邮件的发件人地址和电子邮件的发件人的概念。
某些电子邮件服务器会接受发件人地址作为发件人, 有些人会自动推断出发件人,有些则需要发件人 明确指定。
通常,发件人是电子邮件的实际发起人。 相比之下,发件人地址只是电子邮件中的标题行 可能会或可能不会被视为任何内容。 From Address可以 经常被完全排除在外。垃圾邮件发送者可以轻松欺骗From 地址。 ISP试图确保垃圾邮件发送者无法欺骗发件人。