CSSスタイルシートを含むHTMLページをメールアカウントに送信したい。問題は、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.";
?>
よろしくお願いします。前もって感謝します。
Google、Outlook、Yahooのすべての主要な電子メールサービスプロバイダーは、CSS外部ファイルを許可していません。インラインスタイルとインラインスタイルを使用して適切なメールメッセージをレンダリングするためにテーブルを選択したのは、時代遅れのように思えるかもしれません。
コードを書くのは面倒かもしれませんが、 https://litmus.com/ やenvatoなどの企業は、テンプレートやフォーマットの問題を解決するのに役立ちます。
私の2は、電子メールプロバイダーが送信される情報のすべてのソースを信頼できるわけではないため、これは悪意のあるコードを寄せ付けない方法です。
すべてのCSSを含む<style>
ブロックをindex.html
本体のどこかに配置するのが最善です。一部の電子メールクライアント/ポータルは、ヘッダーに埋め込まれたすべてのCSSを<link rel="stylesheet" type="text/css" href="..." >
で切り取ります。その結果、インラインCSSを使用しないと、メールが「壊れた」ように見える場合や、たとえば@gmail.com
のアカウントで見栄えが悪くなる場合があります。
Index.htmlファイル内に、以下のように<style>
タグを含めます。
<style>
.class{
style: attribute;
}
</style>";
それが機能するはずですが、機能しない場合は、スタイルシートをWebサイトでホストし、インデックスファイルの冒頭に以下のような<link>
タグを含めることをお勧めします
<link rel='stylesheet' type='text/css' href='http://www.yourstylesheet.com'>";
これらの方法のいずれかが問題を解決するはずです。
そのHTMLメールの<head>
にcss-codeを埋め込むだけです。