2010-03-04 16 views
5

Acabo de escuchar a Joel & Jeff hablar sobre el ID del remitente en su podcast número 83, y se me ocurrió que eso es justo lo que necesito para un sitio en el que estoy trabajando.¿Cómo implementar ID de remitente al enviar correos electrónicos a través de C#?

Aproximadamente el 90% de todos los correos electrónicos enviados desde el servidor se hace rebotar o similares, probablemente debido a que el servidor no está "validado".

Tengo un registro SPF en su lugar para el servidor, sino que también es más o menos la misma.

Así que desde StackOverflow han resuelto estos problemas, supongo ID del remitente debe ser el camino a seguir.

Por lo que yo puedo decir de Wikipedia, se le requiere para modificar el encabezado del correo electrónico al enviar - ¿cómo voy a ir haciendo esto desde C#?

También, ¿qué necesitaría para configurar DNS, etc. para que esto funcione?

¿O estoy en una pista completamente incorrecta aquí?

Editar: Estoy usando la clase SmtpClient estándar en C# para el envío de correos electrónicos, y yo incluir tanto un texto claro y una versión HTML del cuerpo del correo.

+0

¿Agregaste el spf a la configuración de DNS de tus dominios? – curtisk

+0

Sí, tengo esa parte en orden :-) – Steffen

Respuesta

4

Si va a enviar correo en nombre de otro usuario y desea que sea aceptado es posible que tenga que hacer lo siguiente:

En su objeto MailMessage:

mail.To = new MailAddress("[email protected]", "To Someone"); 
mail.From = new MailAddress("[email protected]", "Sending User"); 
mail.Sender = new MailAddress("[email protected]", "Your Server"); 
mail.ReplyTo = new MailAddress("[email protected]", "Sending User"); 

Esto generará el se necesitan los encabezados apropiados para que la validación de SPF funcione (suponiendo que el servidor lo tiene configurado de manera predeterminada, pueden elegir qué parte validar). Esto hará que la mirada de correo electrónico como (en perspectiva)

De: Su servidor en nombre de Envío de usuario
Para: Para Alguien

mayoría de los protocolos SPF validarán la cabecera Sender: para determinar si el el envío del dominio lo permite o lo niega, por lo que debe provenir de su dominio independientemente de a quién lo envíe "desde".

Además, es posible que desee comprobar que tiene your SPF records set up right y que su (s) dirección (es) IP no están en un blacklist como spamhaus. Verificando el texto de retorno real de la llamada generalmente le dirá por qué está siendo bloqueado con un error de 5. algo.

+0

No tengo la parte del remitente en mi código, por lo que podría ayudar un poco. También revisaré su enlace para ver los registros de SPF y me aseguraré de que lo haga bien. Gracias :-) – Steffen

2

no veo por qué es necesario realizar ningún cambio de cabecera Sender ID/SPF. Con su registro en su lugar, solo necesita asegurarse de que sus mensajes salientes sean de: un dominio que tenga una IP de envío publicada (pública) coincidente en su registro SPF en DNS.

Sin embargo, creo que podría examinar MailMessage.Headers para ver qué encabezados se envían (o enviarse mensajes) para determinar en función de su tipo de registro SPF cómo los servidores de correo recibirán el dominio para que coincida a su registro SPF.

Cuestiones relacionadas