Я использую встроенную в 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 <info@example.com>\r\n";
$headers .= "Reply-To: donotreply@example.com\r\n";
mail('me@example.com', '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