2011-07-29 14 views
10

Esta es mi configuración SMTP en app.config:¿Por qué los correos electrónicos enviados por .NET SmtpClient faltan Message-Id?

<system.net> 
    <mailSettings> 
     <smtp from="Reminder &lt;[email protected]&gt;"> 
     <network host="mail.myserver.net" port="587" password="my password" userName="[email protected]" enableSsl="true"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

Y esta es la forma en que estoy enviando los correos electrónicos:

message.SubjectEncoding = System.Text.Encoding.UTF8; 
message.BodyEncoding = System.Text.Encoding.UTF8; 
smtpClient.Send(message); 

esto está funcionando! pero el único problema es que mis correos electrónicos van a la carpeta de spam y eso es porque les falta Message-Id en su encabezado. Utilizo la misma cuenta en Thunderbird, cuando envío correos electrónicos usando thunderbird, el ID del mensaje se agrega a mis correos electrónicos, pero no sucede con los correos electrónicos que se envían desde mi aplicación.

que pueda añadir la cabecera manualmente con algo como:

message.Headers.Add("Message-Id","<3BD50098E401463AA228377848493927-1>"); 

Pero esta identificación no es un mensaje válido-id y aún así obtendrá puntuación de spam negativo para él. ¿Alguna idea de por qué está sucediendo esto?

Esto es lo que tengo en Thunderbird:
anfitrión: mail.korax.net/
autenticación: normal de la contraseña/
puerto: 587/
seguridad: StartTLS

Respuesta

7

Su servidor SMTP tiene que ser configurado para incluir automáticamente el ID del mensaje. Si genera su propia identificación, debe seguir RFC 2822 Section 3.6.4.

+0

En realidad, le pregunté a mi hosting para que lo arreglara y lo hicieron :) pero su solución es lo mejor que podría hacer si no hubieran hecho eso por mí :) gracias. – Tohid

7

favor también ver este artículo aquí:

http://jarrett.co/post/1638578964/spamassassin-vs-system-net-mail

que estaba recibiendo el mismo problema. System.Net.Mail no agregará un ID de mensaje automáticamente. Pero puede gustarle así:

mailMessage.Headers.Add("Message-Id", 
         String.Format("<{0}@{1}>", 
         Guid.NewGuid().ToString(), 
         "mail.example.com")); 
Cuestiones relacionadas