【Rails】Action Mailerを使ってメールを送信する方法
Action Mailerとは
Action Mailerは、Railsに標準で提供されているメール送信のためのモジュールです。
手軽かつ簡単にテキストメール、HTMLメールまた添付ファイル付きのメールを送ることができます。
Action Mailerによるメール送信方法
1. Gmailのパスワードを取得
今回は送信元・送信先共にGmailで行います。
Gmailで送信するにはパスワードが必要になるので、そのパスワードを取得していきましょう。ログイン時のパスワードとは別物なので注意してください。
まずGoogleアカウントにログインし、左側にある「セキリュティ」を選択します。
「2段階認証プロセス」を選択。ここで電話番号やコードを入力し2段階認証を行います。
2段階認証を終えると「アプリ パスワード」という項目が増えるのでそれを選択します。
アプリとデバイスの選択が求められるのでそれっぽいものを選ぶと、パスワードが生成されます。
後々使うものなので、そのパスワードをコピーしておいてください。
2. Action Mailerの設定
config/environments/development.rb
に、上のように追記します。
指定可能なパラメータ
パラメータ | 詳細 |
---|---|
delivery_method | メールの送信方法を指定 |
raise_deliveries_errors | メールの送信が失敗した時にエラーを発生させるか |
smtp_settings | :smtpモードでの設定情報 |
default_options | デフォルトのメールヘッダー |
interceptors | 適用するインターセプター |
perform_deliveries | deliverメソッドでメールを送信するか |
show_previews | プレビュー機能を有効にするか |
sendmail_settings | :sendmailモードでの設定情報 |
file_settings | fileモードでの設定情報 |
delivery_methodに設定可能な値
オプション | 詳細 |
---|---|
address | ホスト名 |
domain | ドメイン |
port | ポート番号 |
user_name | ログイン時のユーザー名 |
password | ログイン時のパスワード |
authentication | 認証方法 |
3. メーラーを生成
上のコマンドでメーラーを生成します。今回は例としてChatMailer
というメーラー名にします。
上記のように自動でファイルが作成されればOK。
4. メーラーを編集
default
メソッドでデフォルトのヘッダー情報を設定send_mail
アクションでメール本体を返す
send_mail
で呼んでいるmail
メソッドは、引数にヘッダー情報を指定することで宛先や本文を指定できます。
指定できるものに関しては下記表を参考にしてください。
項目 | 詳細 |
---|---|
to | 宛先 |
cc | 写し |
bcc | ブラインドカーボンコピー |
subject | タイトル |
from | 送信元 |
date | 送信日時 |
reply_to | 返信先のメアド |
x_priority (x_msmail_priority ) | メールの重要性 |
content_type | コンテンツタイプ(text/plain的な) |
charset | 文字コード |
parts_order | 複数形式の順番 |
mime_version | MIMEの順番 |
5. メール本文を調整
views
ディレクトリの中に先ほど作ったメーラー名のフォルダがあると思うので、その中に<アクション名>.text.erb
を作ります。
ビューと同じ要領で、任意のメール本文も書いておきます。
6. メーラーのアクションを呼び出す
先ほど書いたアクションを任意の場所で呼んであげます。
この場合send_email
はあくまでメール本体を返してくれるだけなので、deliver_now
メソッドを呼ぶことでメールを送信しています。
すると無事メールが届きました 🎉