Отправить 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.