Что касается прямого формата, я всегда делал встроенные CSS-стили, однако я использую SwiftMailer (http://swiftmailer.org/) для PHP5 для обработки функций электронной почты, и это очень помогло.
Вы можете отправлять составные сообщения в разных форматах, поэтому, если почтовому клиенту не нравится версия HTML, вы всегда можете по умолчанию использовать текстовую версию, чтобы вы знали, что по крайней мере что-то проходит.
В папке «views» вы можете установить отдельные маршруты для разных форматов электронной почты (я тоже использую smarty, отсюда расширение .tpl). Вот как будет выглядеть типичная функция SwiftMailer :: sendTemplate () при настройке шаблонов:
$email_templates = array('text/html' => 'email/html/' . $template . '.en.html.tpl',
'text/plain' => 'email/text/' . $template . '.en.txt.tpl');
foreach ($email_templates as $type => $file) {
if ($email->template_exists($file)) {
$message->attach(new Swift_Message_Part($email->fetch($file), $type));
} elseif ($type == 'text/plain') {
throw new Exception('Could not send email -- no text version was found');
}
}
Вы поняли идею. SwiftMailer имеет множество других полезных вещей, включая возврат «недоставленных» адресов, ведение журнала ошибок доставки и регулирование больших пакетов электронной почты. Я бы посоветовал вам проверить это.