Полный почтовый заголовок

Мне нужен набор почтовых заголовков для присоединения к моей функции mail() в PHP. Я отправляю в них электронные письма с HTML, а иногда такие службы, как Yahoo Mail, блокируют их. Поэтому я должен убедиться, что я, по крайней мере, предоставляю правильные заголовки.

Мой код:

 // 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: MyCompany <welcome@mycompany.com>' . "\r\n"; 

Есть ли что-нибудь еще, что я должен добавить?

  $headers = "From: testsite < mail@testsite.com >\n"; $headers .= "Cc: testsite < mail@testsite.com >\n"; $headers .= "X-Sender: testsite < mail@testsite.com >\n"; $headers .= 'X-Mailer: PHP/' . phpversion(); $headers .= "X-Priority: 1\n"; // Urgent message! $headers .= "Return-Path: mail@testsite.com\n"; // Return path for errors $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; 

Большинство MUA вставляют много дополнительных заголовков; однако, вот своего рода минимальный минимум, который вы можете ожидать.

 To: Subject: Date: MIME-Version: Content-type: Для того, To: Subject: Date: MIME-Version: Content-type: 

Если вы используете HTML, то вы, вероятно, должны использовать многостраничные сообщения, но это не является строго необходимым.

При определении того, является ли отправитель возможным спамером, многие службы проверяют, является ли домен отправителя похожим на пользователя коммутируемого доступа.

Цитата из Википедии:

Один метод защиты от спама по электронной почте: проверка доменных имен в rDNS, чтобы узнать, могут ли они от пользователей dialup, динамически назначенных адресов или других недорогих интернет-сервисов. Владельцы таких IP-адресов обычно назначают им общие имена rDNS, такие как «1-2-3-4-dynamic-ip.example.com». Поскольку подавляющее большинство, но далеко не все, электронной почты, которая исходит от этих компьютеров, является спамом, многие спам-фильтры отказываются от электронной почты с такими именами rDNS.

Используйте следующий список заголовков с mail() PHP mail() :

 $headers = "From: testsite < mail@domain.com >\n"; $headers .= "Cc: testsite < mail@domain.com >\n"; $headers .= "X-Sender: testsite < mail@domain.com >\n"; $headers .= 'X-Mailer: PHP/' . phpversion(); $headers .= "X-Priority: 1\n"; // Urgent message! $headers .= "Return-Path: mail@domain.com\n"; // Return path for errors $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; 

Действительно ли почта появилась на «mycompany.com»? У меня были проблемы с некоторыми блокировками почтовых служб, если на самом деле это не произошло с сервера SMTP, что почта говорит, что это так.

Для меня это было связано с тем, что это был automail@mydomainnaim.com и добавление reply-to , являющийся человеком, который отправил почту, используя мою систему.

Приведенная ниже ссылка может быть полезна для определения обязательных заголовков:

  • Дата: дата появления / записи сообщения.

  • От: человек «ответственный» за сообщение.

http://www.by-users.co.uk/faqs/email/headers/#MandatoryMail

RFC для IMF и MIME определяют минимальный набор заголовков, поэтому это было бы хорошим местом для начала.

Для МВФ смотрите здесь: http://tools.ietf.org/html/rfc5322#section-3.6

Для MIME смотрите здесь: http://tools.ietf.org/html/rfc2045#section-3

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

Например, http://phpmailer.codeworxtech.com/ .