Почему строка «От» не работает в моей функции почты? - PullRequest
0 голосов
/ 01 декабря 2009

Я использую функцию почты для отправки html на адрес электронной почты, но имя От и адрес электронной почты не отображаются. Это мой код:

$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);

Я ожидаю, что письмо будет отображаться как отправленное от Postmaster на адрес электронной почты some@body.com, но оно будет отображаться как полученное от ideapale@box486.bluehost.com, моего хостинг-провайдера.

Что я не правильно настроил?

1 Ответ

0 голосов
/ 01 декабря 2009

Крис, попробуйте добавить \r\n после <some@body.com>. Я обнаружил, что php может быть очень разборчивым при общении с почтовыми серверами.

Изменить: просто, чтобы помочь немного больше, у меня есть (почти точно, что у вас) в одном из моих рабочих скриптов:

$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";

... где $from = $fromname.' <'.$fromemail.'>'; и $ to это просто адрес электронной почты.

...