環境
- Rails 5
やること
やらないこと
- ActiveJobによる非同期処理
Googleアカウント
どうやらセキュリティ的に厳しくなったのか、Googleアカウントの2段階認証の設定をしていないと他人にメールが送信できなくなったらしい
ここから設定する
次にアプリパスワードというのを設定する。
アプリパスワードってのは普段のログインに使うパスワードとは違って生成したら1度しか表示できないってやつ
ここから作ってメモ
railsの設定
config/application.rbに以下を追加
class Application < Rails::Application config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address: "smtp.gmail.com", port: 587, user_name: '*****@gmail.com', password: 'さっき作ったアプリパスワード', } end
メーラーをジェネレーターで作成 ここではNoticeMailerって名前にしたが、「〇〇Mailer」なら他でも大丈夫
~/rails/scrape $rails g mailer NoticeMailer
create app/mailers/notice_mailer.rb
invoke erb
create app/views/notice_mailer
app/mailers/notice_mailer.rbを以下のように
class NoticeMailer < ApplicationMailer default to: "*****@gmail.com" def alert() mail(subject: "失敗しました") end end
app/views/notice_mailer/alert.text.erbを作って適当に文字を入れておく(最初は
で送信
NoticeMailer.alert().deliver_now