Question

Est-ce que "& From; From" est le suivant? header 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)){

Je reçois l'erreur de mon serveur de messagerie. "Mail from error: Erreur de syntaxe".

Merci à tous pour toute aide.

Mettre à jour

J'ai réduit la fonction SendEmailNow au code ci-dessous et j'ai la même erreur:

//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;
     }

 }

Mise à jour 2

Problème résolu. J'exécute ceci sur une machine Windows en utilisant PHP 5. J'aime la bonne réponse choisie et les commentaires l'ont dit. Certains serveurs de messagerie ont du mal à comprendre ce que j'avais auparavant. Mais ce qui a fonctionné pour moi a été ceci:

$headers .= 'From: mail@mailmaster.com' . "\r\n";
Était-ce utile?

La solution

Une recherche Google du message d'erreur suggère que certains serveurs SMTP ne parviennent pas à analyser la syntaxe de l'en-tête De . Pouvez-vous essayer la syntaxe suivante pour écarter cette possibilité?

From: mail@mailmaster.com

Autres conseils

À moins que le corps ne soit vide, vous aurez peut-être besoin d'un CRLF supplémentaire pour terminer les en-têtes. Sans connaître l’API, je ne peux pas en dire plus.

Je ne sais pas si cela vous aidera, mais voici à quoi ressemblent les en-têtes de sortie dans l'application Python en texte pur:

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...

Encore une fois, c'est difficile à dire sans connaître tout le contenu / les en-têtes, mais je suppose que soit a) vous avez omis les CRLF suivants avant le contenu, ou b) l'un des en-têtes précédents manquait son CRLF.

Mes excuses si cela vous mène dans une direction complètement fausse. :)

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

L'en-tête De nécessite des guillemets pour la partie du nom.

Si vous définissez le " $ userEmail " variable dans votre formulaire, vous pouvez le recevoir et y répondre. $ Email_id est votre adresse email à laquelle il est envoyé.

        $to=$email_id;
        $headers = "From: " . strip_tags($userEmail) . "\r\n";
        $headers .= "Reply-To: ". strip_tags($userEmail) . "\r\n";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top