MailMessage, diferencia entre las propiedades del remitente y del remitente

87

He estado usando el System.Netespacio de nombres desde que cambiamos de .NET Framework 1.1 al marco 3.5, pero hay una cosa que me ha desconcertado desde entonces. ¿Cuál es la diferencia entre Senderlas Frompropiedades y las de la MailMessageclase?

¿Son los dos iguales? Si no es así, ¿hay alguna razón para usarlos Senderjuntos From?

Por ejemplo:

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
fuente
7
En el caso de la implementación de System.Net.Mail no hay diferencia. Al llamar a SmtpTransport.SendMail, hace esto message.Sender != null ? message.Sender : message.From. El resultado es SmtpClient no le permite enviar valores distintos para Sender y From
Sam

Respuestas:

70

Extracto de la wiki en el correo electrónico:

Campos de encabezado: el encabezado del mensaje debe incluir al menos los siguientes campos:

De: La dirección de correo electrónico y, opcionalmente, el nombre del autor o autores. En muchos clientes de correo electrónico no se puede cambiar excepto mediante el cambio de la configuración de la cuenta.

También tenga en cuenta que el campo "De:" no tiene que ser el remitente real del mensaje de correo electrónico. Una razón es que es muy fácil falsificar el campo "De:" y dejar que un mensaje parezca provenir de cualquier dirección de correo. Es posible firmar digitalmente el correo electrónico, que es mucho más difícil de falsificar, pero estas firmas requieren programación adicional y, a menudo, programas externos para verificar. Algunos ISP no retransmiten correos electrónicos que afirman provenir de un dominio que no está alojado en ellos, pero muy pocos (si los hay) verifican para asegurarse de que la persona o incluso la dirección de correo electrónico nombrada en el campo "De:" sea la indicada. asociado con la conexión. Algunos ISP aplican sistemas de autenticación de correo electrónico al correo electrónico que se envía a través de su MTA para permitir que otros MTA detecten el spam falsificado que podría parecer que proviene de ellos.

Remitente: Dirección del remitente real que actúa en nombre del autor que aparece en el campo De: (secretaria, administrador de listas, etc.).

Detalles en http://en.wikipedia.org/wiki/Email

Por ejemplo, gmail utiliza los campos de remitente / remitente para enviar correos electrónicos desde direcciones de correo electrónico diferentes a las de su cuenta de gmail (después de la verificación).

ntziolis
fuente
28

Encontré esta explicación bastante fácil de entender (el énfasis es mío).

Un área en la que existe una gran variedad de operaciones es en el concepto de la dirección de remitente de un correo electrónico y el remitente del correo electrónico.

Algunos servidores de correo electrónico aceptarán la dirección de remitente como remitente, y algunos deducen el remitente automáticamente, y algunos requieren que el remitente se especifique explícitamente.

En general, el remitente es el autor real del mensaje de correo electrónico. La dirección de remitente, por el contrario, es simplemente una línea de encabezado en el correo electrónico que puede o no tomarse como algo. La dirección de remitente a menudo se puede omitir por completo. Los spammers pueden falsificar fácilmente la dirección de origen. Los ISP intentan asegurarse de que los spammers no puedan engañar al remitente.

Jeremy Wiggins
fuente