Я использую встроенную в PHP функцию mail()
для отправки электронных писем в формате HTML, и у меня возникла проблема с форматированием в наиболее распространенном среди пользователей почтовом клиенте — Outlook 2007 (в дополнение к некоторым другим почтовым клиентам ) - все теги html открыты, поэтому для не-веб-разработчика это выглядит тарабарщиной.
Я отправляю электронную почту в формате HTML так же, как это показано в руководстве по PHP. Пример:
$message = get_HTML_email_with_valid_formatting();
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "From: example.com <[email protected]>\r\n";
$headers .= "Reply-To: [email protected]\r\n";
mail('[email protected]', 'test', $message, $headers);
Поскольку тестировать различные почтовые клиенты сложно, я зарегистрировался на http://litmusapp.com/, чтобы видеть скриншот писем в 47 разных почтовых клиентах. Большинство из них в порядке (например, Gmail, Thunderbird, Lotus Notes), но все разные версии Outlook не в порядке.
Чтобы решить проблему с форматированием, я сделал следующее:
- Удалите заголовок почты
$headers = "MIME-Version: 1.0\r\n";
. - Убедитесь, что я заканчиваю свои заголовки только «
\n
» вместо «\r\n
».
Кто-нибудь знает, почему я получаю лучшие результаты с электронными письмами в формате HTML, когда я не соответствую руководству?
Информация:
- Я использую postfix версии 2.3.3 на RHEL 5.5.
- PHP версии 5.3.2