Что касается прямого формата, я всегда делал встроенный CSS но я использую SwiftMailer (http://swiftmailer.org/) для PHP5 для работы с функциями электронной почты, и это очень помогло.
Вы можете отправлять многостраничные сообщения в разных форматах, поэтому, если почтовому клиенту не нравится версия HTML, вы всегда можете по умолчанию использовать текстовую версию, чтобы вы знали, что что-то проходит через чистую.
В вашей папке «Виды» вы можете настроить маршруты для разных форматов электронной почты (я тоже использую 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 имеет множество других полезных вещей, включая возвращение «недоставленных» адресов, протоколирование ошибок доставки и дросселирование больших пакетов электронной почты. Я бы посоветовал вам проверить это.
К сожалению, отправка HTML-сообщений электронной почты без каких-либо альтернатив воспринимается многими спам-фильтрами как спам. Чтобы снизить вероятность запуска, вы должны отправить его как многочастный, с одним разделом как text/plain, а другой как text/html. – staticsan