MailMessage, difference between Sender and From properties

Freek Buurman picture Freek Buurman · Apr 19, 2010 · Viewed 33.2k times · Source

I've been using the System.Net namespace ever since we switched from .NET Framework 1.1 to the 3.5 framework, but there’s one thing that’s been puzzling me since. What's the difference between the Sender and the From properties in the MailMessage class?

Are they both the same, and if not is there a reason to use Sender together with From?

For example:

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

Answer

ntziolis picture ntziolis · Apr 19, 2010

Excerpt from the wiki on email:

Header fields: The message header should include at least the following fields:

From: The e-mail address, and optionally the name of the author(s). In many e-mail clients not changeable except through changing account settings.

Also note that the "From:" field does not have to be the real sender of the e-mail message. One reason is that it is very easy to fake the "From:" field and let a message seem to be from any mail address. It is possible to digitally sign e-mail, which is much harder to fake, but such signatures require extra programming and often external programs to verify. Some ISPs do not relay e-mail claiming to come from a domain not hosted by them, but very few (if any) check to make sure that the person or even e-mail address named in the "From:" field is the one associated with the connection. Some ISPs apply e-mail authentication systems to e-mail being sent through their MTA to allow other MTAs to detect forged spam that might appear to come from them.

Sender: Address of the actual sender acting on behalf of the author listed in the From: field (secretary, list manager, etc.).

Details on http://en.wikipedia.org/wiki/Email

For example gmail uses the from/sender fields to send emails from different email adresses than your gmail account (After verification).