Intereting Posts
Запись сериализованных значений многомерного массива в файл с помощью ключевого пути PHP preg_match с регулярным выражением: только отдельные дефисы и пробелы между словами preg_replace из комментариев CSS? Отправить несколько данных флажка на PHP через jQuery ajax () Force Загрузить MP3 с помощью PHP Используя .htaccess, чтобы все страницы .html запускались как .php-файлы? PHP-сессии в базе данных Объект объекта Doctrine для массива Использовать файл чтения php () или перенаправить для отображения файла изображения? Отправка запроса POST локальному хосту, данные, полученные, но не отображающиеся на веб-странице SonarQube для проектов Drupal Как получить чужой репозиторий внутри моего репозитория в Doctrine2 / Symfony2? Работа над удаленным проектом PHP (сервер Ubuntu) через Eclipse, Netbeans или любую другую среду IDE Отправка нескольких переменных с помощью Jquery ajax Предотвращать хотлинкинг файлов Amazon S3?

Как отправить электронные письма HTML / CSS?

У большинства почтовых клиентов проблемы с чтением CSS в HTML-письмах (включая Gmail и Hotmail). Я часто использую эту службу для преобразования моего HTML / CSS в правильный формат электронной почты, чтобы все выглядело нормально на конце пользователя. В основном, это то, что он преобразует все CSS в встроенные стили:

http://premailer.dialect.ca/

Есть ли у кого-нибудь из вас какие-либо другие способы отправки CSS в ваши электронные письма HTML? Я автоматически генерирую электронные письма, и из-за некоторых ограничений я не могу изменить встроенные стили.

Что касается прямого формата, я всегда делал встроенную стилизацию 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 имеет множество других полезных вещей, включая возвращение «недоставленных» адресов, протоколирование ошибок доставки и дросселирование больших пакетов электронной почты. Я бы посоветовал вам проверить это.

Вам нужно добавить заголовок, в котором говорится, что контент является HTML. Когда вы используете функцию mail (), один из заголовков должен быть: Тип содержимого: html / text (Это может быть не «точный» заголовок).

Позвольте мне найти вам пример: ( со страницы php.net/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 .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n"; $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n"; $headers .= 'Cc: birthdayarchive@example.com' . "\r\n"; $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n"; // Mail it mail($to, $subject, $message, $headers); 

самый простой способ – написать html-страницу со встроенным css и нажать ее через автоматическую машину для стилизации

Чтобы добавить к приведенному выше примеру (в случае, если вы не знаете PHP очень хорошо), вам просто нужно создать «электронную почту», используя переменные: to, subject, message и headers

Сообщите мне, хотите ли вы создать форму для заполнения и запуска этого PHP-скрипта, иначе вы можете просто ввести все в этом файле вручную, сохранить в виде файла PHP, выбросить его на сервер, который поддерживает PHP, и перейдите к файлу в вашем браузере.

Вот код:

 // Setup recipients $to = 'johndoe@google.com' . ',' // comma separates multiple addresses $to .= 'janedoe@msn.com'; // subject $subject = 'PHP Email Script - Test Email'; // message (to use single quotes in the 'message' variable, supercede them with a back slash like this-->&nbsp; \' $message = ' <html> <head> <title>PHP Email Script</title> </head> <body> <p style="background: #ccc; width: 100%;">Test Email Script</p> </body> </html> '; // 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 .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n"; $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n"; $headers .= 'Cc: birthdayarchive@example.com' . "\r\n"; $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n"; // Send the email mail($to, $subject, $message, $headers);