MailMessage, diferença entre as propriedades Sender e From

87

Tenho usado o System.Netnamespace desde que mudamos do .NET Framework 1.1 para o 3.5, mas há uma coisa que me intriga desde então. Qual é a diferença entre Senderas Frompropriedades e na MailMessageclasse?

Ambos são iguais e, se não, há uma razão para usar em Senderconjunto com From?

Por exemplo:

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
Freek Buurman
fonte
7
No caso da implementação System.Net.Mail não há diferença. Ao chamar SmtpTransport.SendMail, ele faz isso message.Sender != null ? message.Sender : message.From. O resultado é SmtpClient não permite que você envie valores distintos para Sender e From
Sam

Respostas:

70

Trecho do wiki no e-mail:

Campos de cabeçalho: o cabeçalho da mensagem deve incluir pelo menos os seguintes campos:

De: O endereço de e-mail e, opcionalmente, o (s) nome (s) do (s) autor (es). Em muitos clientes de e-mail, não pode ser alterado, exceto por meio da alteração das configurações da conta.

Observe também que o campo "De:" não precisa ser o remetente real da mensagem de e-mail. Um dos motivos é que é muito fácil falsificar o campo "De:" e fazer com que uma mensagem pareça ser de qualquer endereço de e-mail. É possível assinar digitalmente um e-mail, o que é muito mais difícil de falsificar, mas essas assinaturas requerem programação extra e, muitas vezes, programas externos para verificação. Alguns ISPs não retransmitem e-mail alegando vir de um domínio não hospedado por eles, mas muito poucos (se houver) verificam se a pessoa ou mesmo o endereço de e-mail nomeado no campo "De:" é o único associado à conexão. Alguns ISPs aplicam sistemas de autenticação de e-mail aos e-mails enviados por meio de seus MTAs para permitir que outros MTAs detectem spam forjado que possa parecer ter vindo deles.

Remetente: Endereço do remetente real agindo em nome do autor listado no campo De: (secretária, gerente de lista, etc.).

Detalhes em http://en.wikipedia.org/wiki/Email

Por exemplo, o gmail usa os campos de / remetente para enviar e-mails de endereços de e-mail diferentes da sua conta do gmail (após a verificação).

ntziolis
fonte
28

Achei essa explicação muito fácil de entender (ênfase minha).

Uma área em que existe uma grande variedade de operações é no conceito de Endereço de origem de um e-mail e do remetente do e-mail.

Alguns servidores de e-mail aceitarão o Endereço De como sendo o Remetente, alguns deduzem o Remetente automaticamente e alguns exigem que o Remetente seja especificado explicitamente.

Em geral, o remetente é o originador real da mensagem de e-mail. O Endereço De, em contraste, é simplesmente uma linha de cabeçalho no e-mail que pode ou não significar algo. Muitas vezes, o endereço De pode ser completamente omitido. Os spammers podem facilmente falsificar o endereço De. Os ISPs tentam garantir que os spammers não possam enganar o remetente.

Jeremy Wiggins
fonte