MailMessage,Sender和From属性之间的区别

时间:2010-04-19 15:35:28

标签: .net vb.net email system.net.mail

自从我们从.NET Framework 1.1切换到3.5框架以来,我一直在使用System.Net命名空间,但是有一件事让我感到困惑。 Sender类中FromMailMessage属性之间的区别是什么?

它们是否相同,如果没有,是否有理由将SenderFrom一起使用?

例如:

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

2 个答案:

答案 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试图确保垃圾邮件发送者无法欺骗发件人。