Heroku で SendGrid サービスを使用しているため、HTML ベースのメールを送信すると、CSS が効果がないことに気付きました。何が問題なのか教えてもらえますか?
html.haml、html.erb として送信しようとしましたが、送信されたメールで画像が正しく表示されますが、両方とも機能しませんでした。
何か案が ?
Heroku で SendGrid サービスを使用しているため、HTML ベースのメールを送信すると、CSS が効果がないことに気付きました。何が問題なのか教えてもらえますか?
html.haml、html.erb として送信しようとしましたが、送信されたメールで画像が正しく表示されますが、両方とも機能しませんでした。
何か案が ?
外部スタイルシートの代わりにインライン スタイルを使用してみてください。このような:
<div style="color:green;" id="div"></div>
このようなものの代わりに:
<style>
#div {
color:green;
}
</style>
<div id="div"></div>
(これを指摘してくれたKelvis Mihoに感謝します)
編集: Google で @Joe のテキストを検索したところ、そのほとんどが http://css-tricks.com/using-css-in-html-emails-the-real-story/からコピーされたものであることがわかりました。
編集: Joe が投稿を編集して参照リンクを含めました。
ほとんどの電子メール クライアントは多くの CSS をサポートしていないため、ほとんどの場合、画像と表の両方を使用する必要があります。
たとえば、素晴らしいメール デザインをコーディングして、スクリーンショットを作成できます。表を使用すると、ロゴを上部中央に配置し、スクリーンショットされた美しい「特集」ペインを左側に配置し、コンテンツとしての「割引」をロゴの下の中央に配置できます。
できないこと:
知っておくべきことは他にもたくさんあります。どのオンライン メール サービスが何をサポートしているかの完全なリストについては、Xavier Frenette のこの記事を参照してください。
あなたができること。
つまり、インライン スタイルです。私たちは基本的に 1 回限りのメールを開発しているので、インライン スタイルは Web サイトで使用するほどひどいものではありません。
インライン スタイルを使用する必要があります。
私にとって、premailer-rails gem は魔法のように機能します。このgemをGemfileに追加するだけです
gem 'nokogiri'
gem 'premailer-rails'
また、すべてのメールには、assets フォルダーのスタイルが含まれます。私は通常email.css.less
、資産フォルダーに を作成し、次<head>
のようにメールのに含めます。
<%= stylesheet_link_tag 'email.css' %>
また、画像を含める必要がある場合は、このヘルパーを見つけて、画像をメールに添付してロゴなどを含めることができます。
module EmailHelper
def email_image_tag(image, **options)
attachments[image] = File.read(Rails.root.join("public/#{image}"))
image_tag attachments[image].url, **options
end
end
そして .erb テンプレートで
<%= email_image_tag "img/logo.png", :class => "some-class" %>
それが誰かを助けることを願っています、よろしく