Pregunta

Es el siguiente " De " encabezado incorect?

    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    // Additional headers
    $headers .= 'From: Mail Master <mail@mailmaster.com>' . "\r\n";
if(sendEmailNow($email, $subject, $body, $headers)){

Recibo el error de mi servidor de correo. Dice " Mail from error: Error de sintaxis " ;.

Gracias a todos por cualquier ayuda.

Actualizar

He reducido la función SendEmailNow a la siguiente y obtengo el mismo error:

//send an email
function sendEmailNow($email, $subject, $body, $headers){

    if (mail($email, $subject, $body, $headers)) {
      ##check email
      ##code to say email sent - compare with the number registered
      return true;
     }

     else {
      ##code to report an error 
      return false;
     }

 }

Actualización 2

Problema resuelto. Estoy ejecutando esto en una máquina Windows usando PHP 5. Al igual que la respuesta correcta elegida y los comentarios han dicho. Algunos servidores de correo tienen problemas para entender lo que tenía anteriormente. Pero lo que funcionó para mí fue esto:

$headers .= 'From: mail@mailmaster.com' . "\r\n";
¿Fue útil?

Solución

Una búsqueda en Google del mensaje de error sugiere que algunos servidores SMTP no pueden analizar su sintaxis para el encabezado From . ¿Puedes probar la siguiente sintaxis para descartar esta posibilidad?

From: mail@mailmaster.com

Otros consejos

A menos que el cuerpo esté vacío, es posible que necesite un CRLF adicional para terminar los encabezados. Sin conocer la API no puedo decir mucho más.

No estoy seguro de si esto ayudará, pero así es como se ven los encabezados de salida en mi aplicación Python en texto puro:

Content-Type: multipart/alternative;
    boundary="10.254.26.130.1.1364.1241389770.060.1"
From: User1 <user1@domain1.com>
To: User2 <user2@domain1.com>,User3 <user3@domain.com>
Subject: Actual subject
MIME-Version: 1.0


--10.254.26.130.1.1364.1241389770.060.1
Content-Type: text/plain;
    charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

actual text content starting here...

Nuevamente, sin conocer todo el contenido / encabezados es difícil de decir, pero supongo que a) Has omitido los CRLF finales antes del contenido, o b) uno de los encabezados anteriores no tiene su CRLF.

Disculpas si eso te lleva en una dirección completamente equivocada. :)

From: "User1" <user1@domain1.com>

El encabezado De requiere comillas para la parte del nombre.

Si configura el " $ userEmail " variable en su formulario, puede obtenerlo de ellos y una respuesta a. $ Email_id es su correo electrónico al que se envía.

        $to=$email_id;
        $headers = "From: " . strip_tags($userEmail) . "\r\n";
        $headers .= "Reply-To: ". strip_tags($userEmail) . "\r\n";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top