php email smtp zend-mail

¿Cuál es el problema con Message-Id en el correo electrónico enviado por php?



email smtp (3)

Un cliente de correo saliente apropiado debe generar el encabezado Message-ID cuando se envía el correo electrónico. Google está siendo "agradable" y lo genera cuando el mensaje pasa a través de su sistema de correo electrónico, pero la mayoría no lo hará, y la mayoría de los filtros de spam tomarán este encabezado faltante como una indicación de que es más probable que el mensaje sea spam. Cualquier encabezado mal formado o faltante se agregará al "puntaje de spam".

No es difícil generar, todo lo que se requiere es que sea único por mensaje:

$message-id = time() .''-'' . md5($sender . $recipient) . ''@'' $_SERVER[''SERVER_NAME''];

O

$message-id = time() .''-'' . md5($sender . $recipient) . ''@yourdomain.com'';

Da:

[email protected]

Tengo un encabezado id de mensaje sospechoso enviado por php a la cuenta de Gmail:

Message-Id: <[email protected]>

¿Podría decirnos si tiene este extraño formato y qué significa SMTPIN_ADDED_MISSING aquí? Los ejemplos que vi en Internet tenían un formato como este que contenía el dominio de envío, pero mi ID de mensaje no lo contiene por alguna razón:

[email protected]

No creo haber configurado este encabezado en Zend_Mail. ¿Qué genera estos encabezados? ¿Ves algún problema con este encabezado?


Google SMTP lo genera si falta. Este encabezado debe ser establecido por el primer servidor SMTP. Entonces no lo generas, google lo hace. Se usa para evitar entregas múltiples y para vincular mensajes relacionados entre sí.

No es necesario configurar un encabezado de identificación de mensaje, pero es una buena práctica para la mayoría (pero no todos, solo configurados) smtp agregar (puede corregir) este encabezado. Entonces, para evitar la generación de este encabezado por otros, puede generarlo usted mismo.


Estoy usando el mismo MessageId para rastrear los mensajes intercambiados.

Arreglo el MessageId con:

$mail->MessageID =sprintf(''<%s@%s>'', $myMessageID, ''myserver'');