2013-12-17 6 views
14

CSSスタイルシートを含むHTMLページをメールアカウントに送信したい。問題は、CSSスタイルシートがまったく見えないことです。すべてのCSSスタイリングをインライン化する必要がありますか?非常に非効率的な方法であるようです。他のアイデア?以下はPHPでCSSスタイルシートを含むHTMLメールを送信する

は、電子メールを送信するための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."; 
?> 

私は非常にあなたの助けをいただければ幸いです。前もって感謝します。

+12

はい、インラインCSSを使用する必要があります。 Google(特に)などのほとんどの電子メールサービスは、外部CSSをゴミ箱に入れます。 –

+9

電子メールのHTMLを書くときは、1996年にインターネットを考えてみてください。 – MackieeE

+0

私は通常、自分のスタイルを電子メールのために ''のシートに埋め込み、インライン要素のクラスを参照します。 – Crackertastic

答えて

0

そのhtml-emailの<head>にCSSコードを埋め込むだけです。

+3

インラインCSSは、すべてのメールクライアントが「」のCSSをサポートしているわけではないため、お勧めします。 – rybo111

+0

もし 'bootstrap'を使用しているのなら、どうすればCSSを追加できますか?または、すべてのCSSを 'インライン形式'で追加したらどうなるでしょうか? – Karthi

+0

はい、インラインで追加してください。 – Roman

2

<style>ブロックをindex.htmlの本文のどこかに配置することをお勧めします。一部のメールクライアント/ポータルでは、ヘッダーに埋め込まれているすべてのCSSを、<link rel="stylesheet" type="text/css" href="..." >で切り捨てます。その結果、インラインCSSを使用しないと、電子メールが「壊れた」と表示されたり、たとえば@gmail.comなどのアカウントで正しく表示されなくなる可能性があります。

1

Google、Outlook、Yahooすべての主要電子メールサービスプロバイダはCSS外部ファイルを許可していません。どのスタイルでも適切な電子メールメッセージを表示するために、インラインスタイルとテーブルを選択したことは陳腐化しているかもしれません。

コードを書くのは面倒かもしれませんが、https://litmus.com/やenvatoなどの企業は、テンプレートや書式設定の問題を解決するのに役立ちます。

私の2¢の:電子メールプロバイダは、送信されているすべての情報源を信頼することができないため、悪質なコードを守る方法です。

1

index.htmlファイル内には、<style>タグを次のように含めます。

動作するはず
<style> 
.class{ 
style: attribute; 
} 
</style>"; 

、そうでない場合は、私はあなたのインデックスファイルの先頭にウェブサイト上であなたのスタイルシートをホスティングし、以下のような<link>タグを含む勧告することができる

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

それらのいずれかのメソッドはあなたの問題に役立つはずです。

+0

これはjsコードと同じですか? (jQueryとjsライブラリ) –

関連する問題