Заголовки почты - PullRequest
       30

Заголовки почты

0 голосов
/ 04 марта 2009

У меня есть веб-сайт, на который я отправляю письмо с подтверждением в рамках процесса регистрации.

Некоторое время назад у меня были некоторые проблемы с отправленными мейлами, поскольку я не использовал заголовки (функция php mail).

Как только я поместил несколько заголовков, я получил больше откликов от пользователей, но я подозреваю, что не каждое сообщение достигает пункта назначения.

Как я могу быть уверен, что сообщения достигают пункта назначения?

Какие заголовки можно считать обязательными?

Это код моей функции SendMail

mail($to,
    $subject,
        $message,
            "MIME-Version: 1.0\n".
            "Content-type: text/plain; charset=ISO-8859-1; format=flowder\n".
            "Content-Transfer-Encoding: 8bit\n".
            "Message-Id: <" . md5(uniqid(microtime())) . "@mysite.com>\n".
            "Return-Path: <admin@mysite.com>\n".
            "X-Mailer: PHP v".phpversion()."\n".
            "From: admin@ mysite.com");

Спасибо

Ответы [ 6 ]

4 голосов
/ 04 марта 2009

Вы должны использовать внешнюю библиотеку для работы с электронной почтой в php, например PhpMailer , SwiftMailer или Zend_Mail . Все ваши проблемы исчезнут.

3 голосов
/ 04 марта 2009

Заголовки должны иметь пробел внизу, чтобы отделить заголовок от основного тела. Такие инструменты, как Spam Assassin, принесут вам большую оценку.

Также вы должны использовать \r\n в качестве ограничителя строки вместо \n

Из PHP.net

Несколько дополнительных заголовков должны быть разделены CRLF (\ r \ n).

1 голос
/ 05 марта 2011

Это рабочая почтовая функция, которую я использую для html почты, и переменная $ return определена для получения отчета об ошибке от почтового сервера в случае неудачной доставки.

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

@mail($to, $subject, $msg, $headers, $return);

Более подробную информацию вы можете увидеть здесь sugunan.com

1 голос
/ 04 марта 2009

Заголовки мне кажутся довольно хорошими. Единственный сбой, который я вижу, - это лишние пробелы в заголовке From.

Я уверен, что вы уже проверили это, но на всякий случай ...

"From: admin@ mysite.com");
  should be (?)
"From: admin@mysite.com");
0 голосов
/ 04 марта 2009

Вы должны добавить заголовок Date: (обязательный RFC5322 ), и некоторые почтовые клиенты могут принять 1 января 1970 г. в качестве даты электронной почты, если она не указана (и она теряется между всеми другие старые сообщения).

0 голосов
/ 04 марта 2009

Заголовки выглядят нормально, за исключением деталей, указанных @Eineki. Также, если вы используете Windows, вам нужно отправить $ to param в форме «user@mail.com», а не «Username», поскольку это может вызвать проблемы из-за того, что функция mail () реализована на платформе Windows адрес "to" может быть проанализирован неправильно.

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