MailMessage, différence entre les propriétés Sender et From

87

J'utilise l' System.Netespace de noms depuis que nous sommes passés du framework .NET Framework 1.1 au framework 3.5, mais il y a une chose qui me laisse perplexe depuis. Quelle est la différence entre les Senderet les Frompropriétés de la MailMessageclasse?

Sont-ils tous les deux identiques, et sinon, y a-t-il une raison de les utiliser Senderavec From?

Par exemple:

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
la source
7
Dans le cas de l'implémentation System.Net.Mail, il n'y a pas de différence. Lors de l'appel à SmtpTransport.SendMail, il le fait message.Sender != null ? message.Sender : message.From. Le résultat est que SmtpClient ne vous permet pas d'envoyer des valeurs distinctes pour Sender et From
Sam

Réponses:

70

Extrait du wiki sur email:

Champs d'en-tête: l'en-tête du message doit inclure au moins les champs suivants:

De: L'adresse e-mail, et éventuellement le nom du ou des auteurs. Dans de nombreux clients de messagerie, non modifiable sauf en modifiant les paramètres de compte.

Notez également que le champ "De:" ne doit pas être le véritable expéditeur du message électronique. Une des raisons est qu'il est très facile de simuler le champ «De:» et de laisser un message sembler provenir de n'importe quelle adresse de messagerie. Il est possible de signer numériquement des e-mails, ce qui est beaucoup plus difficile à simuler, mais de telles signatures nécessitent une programmation supplémentaire et souvent des programmes externes à vérifier. Certains FAI ne relaient pas les e-mails prétendant provenir d'un domaine non hébergé par eux, mais très peu (le cas échéant) vérifient que la personne ou même l'adresse e-mail nommée dans le champ «De:» est bien celle associé à la connexion. Certains FAI appliquent des systèmes d'authentification de messagerie aux e-mails envoyés via leur MTA pour permettre à d'autres MTA de détecter le spam falsifié qui semble provenir d'eux.

Expéditeur: Adresse de l' expéditeur réel agissant au nom de l'auteur répertorié dans le champ De: (secrétaire, gestionnaire de liste, etc.).

Détails sur http://en.wikipedia.org/wiki/Email

Par exemple, gmail utilise les champs de / expéditeur pour envoyer des e-mails à partir d'adresses e-mail différentes de celles de votre compte gmail (après vérification).

Ntziolis
la source
28

J'ai trouvé cette explication assez facile à comprendre (c'est moi qui souligne).

Un domaine dans lequel les opérations sont assez diverses est le concept de l'adresse d'expédition d'un e-mail et de l'expéditeur de l'e-mail.

Certains serveurs de messagerie acceptent l'adresse d'expédition comme étant l'expéditeur, certains en déduisent automatiquement l'expéditeur, et certains exigent que l'expéditeur soit spécifié explicitement.

En général, l'expéditeur est le véritable créateur du message électronique. L'adresse d'expédition, en revanche, est simplement une ligne d'en-tête dans l'e-mail qui peut ou non être considérée comme signifiant quoi que ce soit. L'adresse d'expédition peut souvent être complètement omise. Les spammeurs peuvent facilement usurper l'adresse d'expédition. Les FAI essaient de s'assurer que les spammeurs ne peuvent pas usurper l'expéditeur.

Jeremy Wiggins
la source