Заголовки почты вызывают сбой - PullRequest
0 голосов
/ 02 февраля 2012

Я делаю контактную форму.Я получил элементарную версию для работы (сбор информации о форме и отправка электронного письма со своего сайта на мой личный адрес электронной почты), но я не могу заставить работать «дополнительные заголовки».Он отлично работает, если у меня есть следующие заголовки:

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

Но если я пытаюсь добавить дополнительные заголовки Mail, такие как:

$headers .= 'To: Jack <Jack Johnson>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
$headers .= "\r\nX-Mailer: PHP/" ;

, я получаю сообщение об ошибке в функции mail,Я использую PHP версии 5.3.8.Чтобы убедиться, что функция почты работает, я делаю это:

$sendmail = mail($email_to, $email_subject, $email_message, $headers);

    if ($sendmail) {
        echo '<div>Thanks for submitting!</div>';
    } else {
        echo '<div>Fail</div>';
    }

Я неправильно форматирую это?

1 Ответ

1 голос
/ 03 февраля 2012
    $headers .= 'To: Jack <Jack Johnson>' . "\r\n";

Как упомянуто в комментариях, это не должно быть там. Но это почти наверняка вызовет проблему, потому что он не содержит адрес электронной почты

Также, как упоминалось в комментариях, у вас есть двойной \r\n, включив его в начале

    $headers .= "\r\nX-Mailer: PHP/" ;

Наконец, это не должно вызывать проблемы, но вы действительно не должны делать это:

    $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

Строки скрытой копии не принадлежат заголовку. Они появятся в заголовке для всех получателей, что подорвет точку Bcc. Вы обнаружите, что это периодически обрабатывается в различных почтовых клиентах и ​​службах. Некоторые отобразят его, некоторые просто сохранят, некоторые «любезно» скроют его от заголовков.

PHP mail () на самом деле не предназначен для обработки скрытой копии, поэтому вам, вероятно, потребуется вызвать функцию mail () и отдельно отправить получателю скрытой копии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...