Отправить HTML-письмо, включая таблицу стилей CSS через PHP

Я хочу отправить HTML-страницу, содержащую таблицу стилей CSS, в учетную запись электронной почты. Проблема в том, что таблица стилей CSS вообще не видна. Должен ли я встроить все стили CSS? Это, по-видимому, очень неэффективный метод. Любые другие идеи?

Ниже приведен код PHP для отправки электронной почты:

<?php
$to = "[email protected]";

// subject
$subject = "Test mail";

// message
$message = file_get_contents("index.html");

// from
$from = "[email protected]";

// 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 .= "From:" . $from;

// Mail it
mail($to,$subject,$message,$headers);

echo "Mail Sent.";
?>

Буду признателен за вашу помощь. Спасибо заранее.

Ответы

Ответ 1

Лучше всего поставить блок <style> со всем CSS внутри него где-нибудь в теле index.html. Некоторые почтовые клиенты/порталы вырезали все CSS, встроенные в заголовок, с помощью <link rel="stylesheet" type="text/css" href="..." >. В результате не используя встроенный CSS может привести к тому, что ваши сообщения появятся "сломанными" или просто выглядят плохо на учетных записях с помощью @gmail.com, например.

Ответ 2

Google, Outlook, Yahoo, все основные поставщики услуг электронной почты не разрешают внешние файлы CSS. Может показаться устаревшим, что они выбрали встроенные стили и таблицы для отображения правильного сообщения электронной почты с любым стилем.

Может быть скучно кодировать, но такие компании, как https://litmus.com/, и envato поможет с некоторыми шаблонами и проблемами с форматированием.

мои 2 ¢ s: поставщики электронной почты не могут доверять всем источникам отправленной информации, и поэтому это способ удержать вредоносный код в страхе.

Ответ 3

Внутри файла index.html добавьте тег <style>, как показано ниже.

<style>
.class{
style: attribute; 
}
</style>";

Это должно сработать, если нет, то я могу порекомендовать разместить вашу таблицу стилей на веб-сайте и включить тег <link>, похожий на те, что указаны ниже в заголовке вашего индексного файла

<link rel='stylesheet' type='text/css' href='http://www.yourstylesheet.com'>";

Любой из этих методов должен помочь с вашей проблемой.

Ответ 4

Просто вставьте css-код в <head> этого html-email.