Railsアプリケーションから、画像と適切なフォーマットを含むメールをどのように作成して送信しますか?Facebookなどから取得したもののように。
ActionMailerを使用してRails)から通常のプレーンテキストメールを送信する方法を知っていると仮定すると、HTML
メールを機能させるには、メールのコンテンツタイプを設定する必要があります。
たとえば、通知者は次のようになります。
class MyMailer < ActionMailer::Base
def signup_notification(recipient)
recipients recipient.email_address_with_name
subject "New account information"
from "[email protected]"
body :user => recipient
content_type "text/html"
end
end
content_type "text/html"
行に注意してください。これにより、ActionMailerは、デフォルトのtext/html
ではなくtext/plain
のコンテンツタイプの電子メールを送信するようになります。
次に、メーラービューにHTML
を出力させる必要があります。たとえば、ビューファイルapp/views/my_mailer/signup_notification.html.erb
は次のようになります。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" media="screen">
h3 { color: #f00; }
ul { list-style: none; }
</style>
</head>
<body>
<h3>Your account signup details are below</h3>
<ul>
<li>Name: <%= @user.name %></li>
<li>Login: <%= @user.login %></li>
<li>E-mail: <%= @user.email_address %></li>
</ul>
</body>
</html>
ご覧のとおり、HTML
ビューには基本的なスタイルを定義するための<style>
タグを含めることができます。特にすべてのメールクライアントで、すべてのHTML
とCSS
がサポートされているわけではありませんが、テキストスタイルを十分にフォーマット制御できる必要があります。
添付の電子メールを表示する場合、画像の埋め込みは少し注意が必要です。外部サイトからのメールを単に含める場合は、通常HTML
で使用するのと同じように<img />
タグを使用できます。ただし、多くのメールクライアントは、ユーザーが承認するまで、これらの画像の表示をブロックします。添付画像を表示する必要がある場合は、Railsプラグイン インライン添付ファイル は一見の価値があります。
Railsメーリングサポートの詳細については、 ActionMailerドキュメント は素晴らしいリソースです
画像の場合は、image_tag
を定義した後、通常のActionMailer::Base.asset_Host = 'http://www.your-domain.com'
ヘルパーを使用できます。
私はペーパークリップを使用して画像を保存しているので、私の場合はこれを使用してメールに画像を追加できます。
image_tag result.photo.url(:small)
読む CSSで素晴らしいHTMLメールを作成する方法 、それは良いスタートです。すべてのメールはHTML3.0に従う必要があります!