ver saber headers fuente encabezado electronico correo como codigo cabecera analizar php email header

php - saber - ver encabezado de correo en outlook 2016



¿Qué necesito para un encabezado de correo electrónico compatible? (9)

Intento enviar un correo electrónico desde un sitio que estoy creando, pero termina en la carpeta de spam de yahoo. Es el correo electrónico que envía las credenciales. ¿Qué puedo hacer para legitimarlo?

$header = "From: site <[email protected]>/r/n"; $header .= "To: $name <$email>/r/n"; $header .= "Subject: $subject/r/n"; $header .= "Reply-To: site <[email protected]>" . "/r/n"; $header .= "MIME-VERSION: 1.0/r/n"; $header .= ''Content-type: text/html; charset=iso-8859-1'' . "/r/n"; $phpversion = phpversion(); $header .= "X-Mailer: PHP v$phpversion/r/n"; mail($email,$subject,$body,$header);


Acabo de probar con éxito lo siguiente de mi Yahoo! Cuenta de alojamiento web:

$email = "[email protected]"; $subject = "Simple test"; $body = "Simple test"; $header = "From: site /r/n"; $header .= "To: $name /r/n"; $header .= "Subject: $subject/r/n"; $header .= "Reply-To: site " . "/r/n"; $header .= "MIME-VERSION: 1.0/r/n"; $header .= ''Content-type: text/html; charset=iso-8859-1'' . "/r/n"; $phpversion = phpversion(); $header .= "X-Mailer: PHP v$phpversion/r/n"; mail($email,$subject,$body,$header);

Sin embargo, tiene alguna duplicación en su encabezado, solo debería hacer lo siguiente:

$email = "[email protected]"; $subject = "Simple test"; $body = "Simple test"; $header = "From: site /r/n"; $header .= "MIME-VERSION: 1.0/r/n"; $header .= ''Content-type: text/html; charset=iso-8859-1'' . "/r/n"; $phpversion = phpversion(); $header .= "X-Mailer: PHP v$phpversion/r/n"; mail($email,$subject,$body,$header);


Además de las sugerencias de Ted Percival , asegúrese de que la dirección IP desde donde proviene el correo electrónico sea una fuente legítima de correo electrónico según el registro de SPF de site.com. Si site.com no tiene un registro SPF, agregar uno (que permite la dirección IP en cuestión, por supuesto) puede ayudar a que los correos electrónicos pasen los filtros de spam.

Y si es absolutamente necesario utilizar HTML en su correo electrónico, asegúrese de incluir también una versión de texto sin formato; usaría el tipo de contenido "multipart / alternative" en lugar de "text / html".


Además de las sugerencias de Ted Percival, puede intentar usar PHPMailer para crear los correos electrónicos por usted en lugar de construir manualmente los encabezados. He usado esta clase extensamente y no he tenido ningún problema con el correo electrónico que Yahoo o cualquier otra persona ha rechazado como correo no deseado.


Agregar un registro SPF es muy fácil. Deberías intentarlo.

Este es para dreamhost plus googlemail También debe indicar su dirección IP del servidor web (en mi caso, la línea antes de googlemail) La última línea le dice al servidor que haga un rechazo suave (marcar como spam pero no eliminar) Estoy usando en lugar de "-" (eliminar) porque la documentación de Google lo dice :-)

Es un registro TXT v = spf1 ip4: 64.111.100.0/24 ip4: 66.33.201.0/24 ip4: 66.33.216.0/24 ip4: 208.97.132.0/24 ip4: 208.97.187.0/24 ip4: 208.113.200.0/24 ip4 : 208.113.244.0/24 ip4: 208.97.132.74 ip4: 67.205.36.71 incluye: aspmx.googlemail.com mx ~ all

Espero eso ayude


Compruebe rfc 822 y rfc 2045 para formato de correo electrónico. Encuentro que la clase de correo electrónico de Python es realmente fácil de usar. Supongo que la PEAR de php hace lo mismo (según correos anteriores). Además, el encabezado y el cuerpo están separados por un "/ r / n / r / n", no estoy seguro si el código lo inserta automáticamente, pero puede intentar agregarlo al encabezado.

No creo que DK / SPF sea necesario (ya que hay muchos servidores web sin soporte DK / SPF). Puede haber muchos factores que podrían estar bloqueando (al menos 10K diferentes criterios y métodos ... p0f, listas grises, listas grises, listas negras, etc.). Asegúrese de que su correo electrónico esté formateado correctamente (esto marca una GRAN diferencia). Busque en las bibliotecas que generan el encabezado completo para usted ... de esa manera tiene menos posibilidades de cometer un error.


Las sugerencias de Ted son buenas, al igual que las de Tim, pero la única forma en que alguna vez he podido enviar correos electrónicos a Yahoo / Hotmail / etc. es utilizar las clases de correo electrónico de PEAR. Pruebe esos & (suponiendo que su servidor esté bien) puedo garantizar que funcionará.


También existe la posibilidad de que ''sendmail'' (que está debajo de la función PHP mail ()) necesite parámetros adicionales. Si tiene un problema con los encabezados de devolución (como Return-Path) que no se configuran con lo que usted configuró, es posible que necesite usar el quinto parámetro de mail (). Ejemplo:

mail(''[email protected]'', ''Subject'', $mail_body, $headers, " -f [email protected]");

¡Hay alguna evidencia más de que el verdadero envío de correos vainilla puede tener un problema con esto! Esperemos que tenga ''postfix'' como soporte de mail () subyacente de PHP en su servidor de destino.


Ted y Tim tienen excelentes sugerencias. Como lo hace Shabbyrobe. Usamos PHPMailer y no tenemos ningún problema con los filtros de spam.

Una cosa a tener en cuenta es que muchos filtros de spam contarán que NO tendrán una versión de texto en su contra si está usando un formato MIME. Puede agregar todos los encabezados y la versión de texto, o simplemente dejar que PHPMailer o la biblioteca de correo PEAR se encarguen de eso por usted. Tener una versión de texto puede ayudar o no, pero es una buena práctica y fácil de usar.

Me doy cuenta de que la muestra de su código es solo eso, una muestra, pero vale la pena decir: no acabe de soltar datos provistos por el usuario en sus encabezados de correo. Asegúrese de validar que se trata de los datos que espera. Es trivial convertir un script de php en un relay abierto, y nadie lo quiere.


  • No use HTML en su correo electrónico.
  • Envíelo a través de un servidor de correo legítimo con IP estática y DNS inverso (PTR) que apunte al nombre de host real de la máquina (y coincida con una búsqueda directa).
  • Incluya un ID de mensaje (o asegúrese de que el remitente local le agregue uno).
  • Ejecute su correo electrónico a través de SpamAssassin y vea qué reglas de puntuación incorrecta coinciden. Evita hacer coincidirlos.
  • Utilice DomainKeys Identified Mail para firmar digitalmente sus mensajes.