0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rails でメールを送信する

Posted at

1. 送信元メールアドレス(gmail)の google アカウントの2段階認証を完了させる。

google アカウントの Security 設定で、2段階認証を設定する。

2. 送信元メールアドレス(gmail)の google アカウントでアプリパスワードを作成する。

google アカウントの App Password 設定で、アプリパスワードを設定すると、16個のアルファベット文字列を取得できる。これがアプリパスワード。

3. Rails 側の設定

1️⃣ 以下のコマンドを入力
rails g mailer UserMailer

すると、以下のようにディレクトリが作成されます。

      create  app/mailers/user_mailer.rb
      create  app/mailers/application_mailer.rb
      invoke  erb
      create    app/views/user_mailer
      invoke  rspec
      create    spec/mailers/user_mailer_spec.rb
      create    spec/mailers/previews/user_mailer_preview.rb
2️⃣ ApplicationMailer の作成

自動生成されたファイル内に以下を記載する。

app/mailers/application_mailer.rb
class ApplicationMailer < ActionMailer::Base
  default from: 'from@example.com' # 先ほどアプリパスワードを作成した gmail
  layout 'mailer'
end
3️⃣ UserMailer の作成

自動生成されたファイル内に以下を記載する。

app/mailers/user_mailer.rb
class UserMailer < ApplicationMailer
  def welcome_email(user:) # 引数は送信先ユーザー
    @user = user
    mail(to: @user.email, subject: 'メールの件名')
  end
end
4️⃣ メール本文の作成

先ほど作成した UserMailer のメソッドに対応させて、 app/views/user_mailer 配下にファイルを作成する。
※ 件名は UserMailer で設定する。

app/views/user_mailer/verify_email.text.erb
<%= @user.display_name %> 様

お世話になっております。

hogehoge
5️⃣ 環境ごとの設定
config/environments/development.rb
  config.action_mailer.default_url_options = { host: 'localhost', port: 3333 }
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    port:                 587,
    address:              'smtp.gmail.com',
    domain:               'gmail.com',
    user_name:            "送信元googleアドレス",
    password:             "設定したアプリパスワード",
    authentication:       'login',
    enable_starttls_auto: true
  }

以上の設定により、送信されるはずです!!

user = User.find(1)
UserMailer.with(user: user).welcome_email(user: user).deliver_now
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?