solucion - problema con el encabezado de php ''De''
get tag name wordpress (8)
Estoy construyendo un sitio web que envía y envía un correo electrónico a un usuario cuando se registra.
Mi código (la esencia de esto):
<?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! /nThis is a simple email message.";
$headers = "From: [email protected]";
$headers .= "/r/nReply-To: [email protected]";
$headers .= "/r/nX-Mailer: PHP/".phpversion();
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>
el problema es que cuando se entrega el correo, el encabezado de from permanece en [email protected]
, mientras que la respuesta se cambia al valor especificado.
box123.bluehost.com
es el nombre de host del servidor en el que se aloja el sitio web.
Entonces, ¿qué estoy haciendo mal? ¿Qué puedo hacer para que la dirección "De" coincida con la dirección de respuesta?
¿Es algo que estoy haciendo mal, o es el anfitrión de la web jugando sucio?
Editar: Acabo de señalar que está tratando de usar una dirección de gmail como valor desde. Esto no va a funcionar , y el ISP tiene razón al sobrescribirlo. Si desea redireccionar las respuestas a sus mensajes salientes, use reply-to
.
Una solución para las direcciones válidas que funciona con muchos ISP:
intente agregar un quinto parámetro a su comando mail()
:
mail($to,$subject,$message,$headers,"-f [email protected]");
El servidor web no está jugando realmente sucio. No es estrictamente de acuerdo con las reglas, pero en comparación con algunos de los increíbles inventos destinados a prevenir el correo no deseado, no es particularmente malo.
Si realmente desea enviar correo desde ''@ gmail.com'', ¿por qué no simplemente usar el servicio SMTP de Gmail? Si no puede reconfigurar el servidor donde se está ejecutando PHP, existen muchas herramientas de conteo de correo electrónico que le permiten especificar un relator SMTP personalizado que phpmailer viene a la mente.
DO.
Lo resolví agregando cuentas de correo electrónico en Cpanel y agregando ese mismo correo electrónico al encabezado desde un campo como este
$header = ''From: XXXXXXXX <[email protected]>'' . "/r/n";
Me doy cuenta de que este es un hilo viejo, pero tuve el mismo problema desde que me mudé a Bluehost ayer. Puede que no haya sido la respuesta seleccionada, pero apoyo la respuesta del artículo bluehost 206.
Creé un correo electrónico válido en el panel de control y lo usé como mi dirección De y funcionó.
Para evitar el phishing, algunos servidores de correo evitan que se reescriba From.
Resulta que el servidor del póster original (blueHost) tiene una pregunta frecuente sobre esta misma pregunta .
Artículo 206.
Esto se debe a que nuestros servidores requieren que usted (o su secuencia de comandos) utilice un campo De: formateado y válido en el encabezado del correo electrónico. Si el campo Desde: no está formateado correctamente, está vacío o la dirección de correo electrónico no existe en el cPanel, la dirección De: se cambiará a username@box###.bluehost.com
.
Debe cambiar la secuencia de comandos que está utilizando para usar correctamente un From: header.
válido From: header.
Ejemplos de encabezados que deberían funcionar serían:
De: [email protected]
De: "usuario" <[email protected]>
Ejemplos de encabezados que NO funcionarán:
De: "[email protected]"
De: usuario @ dominio.com
De: [email protected] <[email protected]>
Nuestros servidores no aceptarán el nombre para que la dirección de correo electrónico y la dirección de correo electrónico sean iguales. No aceptará una doble declaración de la dirección de correo electrónico.
Para las secuencias de comandos como Joomla y Wordpress, deberá seguir su documentación para formatear correctamente los campos de. Wordpress requerirá el complemento Mail From.
Nota: La dirección de correo electrónico que use debe ser una cuenta creada válida en el cPanel.
Tuve el mismo problema. Revisé el sitio de php.net. Y encontró el formato correcto.
Este es mi código actualizado
$headers = ''MIME-Version: 1.0'' . "/r/n";
$headers .= ''Content-type: text/html; charset=iso-8859-1'' . "/r/n";
$headers .= ''From: '' . $fromName . '' <'' . $fromEmail .''>'' . " /r/n" .
''Reply-To: ''. $fromEmail . "/r/n" .
''X-Mailer: PHP/'' . phpversion();
El / r / n debe estar entre comillas dobles (") en sí, las comillas simples ('') no funcionarán.
los encabezados no funcionaban para mí en mi alojamiento compartido, razón por la cual estaba usando mi dirección de correo electrónico de hotmail en el encabezado. Creé un correo electrónico en mi cpanel y establecí ese mismo correo electrónico en el encabezado, sí, funcionó como un amuleto.
$header = ''From: ShopFive <[email protected]>'' . "/r/n";