Action Mailerでログインメール送信 -Rails- 本番用でsendgrid使用

本番環境ではsendgridとゆうメールサーバーを使用してメール送信行います。
ここでは作成したアプリがheroku createして繋がってることが前提です。

まず、プラグインを導入。

heroku addons:create sendgrid:starter
とコマンドを打つと
creating sendgrid-*****Adding sendgrid**** to 自分のherokuURL
と表示されheokuのアプリに対してsendgridが作られaddされたことがわかります。

setting sendgrid_password, sendgrid_username
と言われるので
heroku config:get sendgrid_username
と打つとusername発行されます。
heroku config:get sendgrid_password のコマンドでpassword発行されます。

これらの発行された値を****のところに入力して

とすることで環境変数として登録。(自分のPCに保存されます。 )

確認コマンド
heroku config で値でればOK

スポンサーリンク

config/environment/production.rb ファイルを開き

と書く

config/initializers/devise.rb のファイルを開き

config.mailer_sender= noreplydomain
とする。

通常この=から右側の値はは自分のアドや会社のアドになり、
メールのfromアドになります。

ここまででSMTP周りの設定は完了です!

実際にメールを送る仕組みを実装

rails g mailer sendMailer sendmail
(mailer sendMailerを作り、その中にアクション def sendmailを作りました)

今のコマンドでmailerに関するファイルが一気にできます。

を開き一緒に作成された

の中身を書きます。

このアクション def sendmailはブログが投稿された時にメールが来るように設定してるのでblogのちょっとした内容の情報を渡すため仮引数(blog)と書きます。

そうすることでブログのcreateアクションから送信されてきたブログ内容をmailerからmail viewに渡すことができます。

mailの本文であるviewは

にあります。

mailerを呼び出すためにdeliverメソッドをかく

blogが投稿された時にメール送りたいのでblogs_controllerにmailerのコードを付けくわて完成です

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)