【问题标题】:MailMessage, difference between Sender and From propertiesMailMessage,Sender 和 From 属性的区别
【发布时间】:2011-02-09 18:08:05
【问题描述】:

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

它们是否相同,如果不是,是否有理由同时使用 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

【问题讨论】:

  • 在 System.Net.Mail 实现的情况下没有区别。当调用 SmtpTransport.SendMail 时,它会执行此操作 message.Sender != null ? message.Sender : message.From。结果是 SmtpClient 不允许您为 Sender 和 From 发送不同的值

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


【解决方案1】:

我发现this 的解释很容易理解(强调我的)。

有一个非常多样化的操作领域是在 电子邮件的发件人地址和电子邮件的发件人的概念。

一些电子邮件服务器将接受发件人地址作为发件人, 有的自动推导出Sender,有的需要Sender 明确指定。

一般来说,发件人是电子邮件的实际发件人。 相比之下,发件人地址只是电子邮件中的标题行 这可能会或可能不会被认为意味着什么。 发件人地址可以 经常被完全排除在外。垃圾邮件发送者可以轻松欺骗 From 地址。 ISP 试图确保垃圾邮件发送者无法欺骗发件人。

【讨论】:

    【解决方案2】:

    摘自 wiki 上的电子邮件:

    标题字段: 消息头至少应包含以下字段:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 2010-10-02
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      相关资源
      最近更新 更多