Question

J'utilise une fonction de messagerie pour envoyer du HTML à une adresse électronique, mais le nom et l'adresse électronique De ne s'affichent pas. Ceci est mon code:

$name = $_POST['name'];
$mailTo = 'name@email.com';
$subject = 'Message from ' . $_POST['name'];
$message = 
            '<html>
            <head>
            <title>HTML email</title>
            </head>
            <body>
            <p><b>Name:</b> ' . $_POST['name'] . '</p>
            <p><b>Email:</b> ' . $_POST['email'] . '</p>
            <p><b>Message:</b> ' . $_POST['mainmessage'] . '</p>
            </body>
            </html>';

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Postmaster <some@body.com>';

mail($mailTo, $subject, $message, $headers);

Je m'attendrais à ce que l'e-mail apparaisse comme provenant de Postmaster à l'adresse électronique some@body.com, mais il apparaît comme provenant de ideapale@box486.bluehost.com, qui est mon fournisseur d'hébergement.

Qu'est-ce que je n'ai pas configuré correctement?

Était-ce utile?

La solution

Chris, essayez d’ajouter le \r\n après le <some@body.com>. J'ai constaté que php peut être très difficile en parlant aux serveurs de messagerie.

Éditer: juste pour aider un peu plus, j'ai ceci (presque exactement ce que vous avez) dans un de mes scripts de travail:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: '.$to . "\r\n";
$headers .= 'From: ' .$from. "\r\n";

... où $from = $fromname.' <'.$fromemail.'>'; et $ to sont uniquement des adresses électroniques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top