Pregunta

$to = "jijodasgupta@gmail.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
  echo("pMessage successfully sent!/p");
} else {
  echo("pMessage delivery failed.../p");
}

Has escrito un código php sendmail básico que pero me da el siguiente error:

  

Warning: mail () [function.mail]: "sendmail_from" no establece en php.ini o   costumbre "de:" encabezado falta en C: \ xampp \ htdocs \ mail.php en la línea 5   la entrega de mensajes ha fallado ...

He cambiado el archivo `` php.ini y puse sendmail_from=jijodasgupta@gmail.com pero aún así el problema persiste. Escribir el guión de correo por primera vez.

¿Estoy haciendo algo mal? ¿Hay una mejor manera de hacer esto?

¿Fue útil?

Solución

  

additional_headers (opcional)

     

cadena que se inserta al final de   el encabezado del correo electrónico.

     

Esto se suele utilizar para añadir el suplemento   cabeceras (De, CC y CCO). Múltiple   encabezados adicionales se deben separar con   un CRLF (\ r \ n).

     

Nota: Al enviar correo, el correo debe   Desde contener una cabecera. Esto se puede ajustar   con el parámetro cabeceras_adicionales,   o una forma predeterminada se puede establecer en php.ini.   Si no se hace esto se traducirá en una   mensaje de error similar al Advertencia:   mail (): "sendmail_from" no ocupa   php.ini o costumbre "de:" encabezado   desaparecido. Desde la cabecera establece también   Return-Path bajo Windows.

Espero que ayude.

Otros consejos

En primer lugar, comprueba que ha editado el php.ini correcta - añadir phpinfo(); a su información de diagnóstico de salida del script, incluyendo la ubicación de php.ini. También debe ser capaz de ver el valor configurado "sendmail_from" aquí también.

De no ser así, proporcionar una cabecera From, como se indica por usoban

$hdrs="From: jijodasgupta@gmail.com";
mail($to, $subject, $body, $hdrs);

Si ha editado el php.ini correcto y que no refleja su cambio, es posible que desee reiniciar el servicio web, como muchos entornos sólo cargar el php.ini cuando se inicia el servidor.

Me encontré con el mismo problema y terminó siendo porque mi servidor estaba usando el account@servername como el de la dirección de correo electrónico a pesar de que he especificado mi propia en las cabeceras.

La respuesta que encontré en otro lugar era añadir un parámetro quinta a la llamada de correo para forzar al sistema a utilizar la dirección de correo electrónico Desde que he especificado:

$from = 'fromemail@domain.com'
$xheaders = "From: " . $from . " <" . $from . ">\n"; 
$i = mail("$useremail","$subject","$content",$xheaders,'-f fromemail@domain.com'); 

En lugar de establecer la dirección de la forma en php.ini, simplemente lo envían en las cabeceras como usoban dicho lugar.

Esto le ahorrará dolores de cabeza cuando usted recibe otro sitio en la misma configuración y se olvide de establecer las cabeceras la próxima vez.

PHP mail () genera una gran cantidad de problemas. Cuando finalmente consigue que funcione en su servidor, se dará cuenta de que sus correos electrónicos terminan en las carpetas de spam de sus usuarios.

Yo recomendaría para enviar correo usando una de esas bibliotecas PHP SMTP lugar:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top