ユーザー登録後、登録したメールアドレス宛に登録完了メールを送信するために下記コードを書いてみたのですが、うまくメールが送信されません。
どの箇所を修正すれば送信されるようになるのかご教示いただけませんでしょうか。
何卒よろしくお願いいたします。
(また、作成時はこちらのサイトを参考にいたしました(https://qiita.com/Yama-to/items/823baf26bba3193712ea))
こちらから下が私が記入しているコードになります。
↓development.rb
#--- 中略 ---# 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: 'smtp.gmail.com', user_name: 'メールアドレス', password: 'パスワード', authentication: 'login', enable_starttls_auto: true }
↓app/mailers/application_mailer.rb
class ApplicationMailer < ActionMailer::Base default from: "メールテスト運営局", bcc: "sample+sent@gmail.com", reply_to: "sample+reply@gmail.com" layout 'mailer' end
↓app/mailers/sample_mailer.rb
app/mailers/sample_mailer.rb
1class SampleMailer < ApplicationMailer 2 3 # Subject can be set in your I18n file at config/locales/en.yml 4 # with the following lookup: 5 # 6 # en.sample_mailer.send_when_update.subject 7 # 8 def send_when_update 9 def send_when_update(user) 10 @user = user 11 mail to: user.email, 12 subject: '会員情報が更新されました。' 13 end 14 end 15end
↓views/sample_mailer/send_when_update.html.erb
<!doctype html> <html lang="ja"> <head> <meta content="text/html; charset=UTF-8" /> <style type="text/css"> h2 { color: #e7454a; } p hr { color: #2d2a24; } </style> </head> <body> <h2><%= @user.name %> 様</h2> <hr /> <p> この度は「メールテスト運営局」を利用頂きましてありがとうございます。 </p> <p> ユーザー名: <%= @user.name %><br /> </p> <hr /> </body> </html>
↓views/sample_mailer/send_when_update.text.erb
=============================== <%= @user.name %>様 =============================== この度は「メールテスト運営局」を利用頂きましてありがとうございます。 ユーザー名: <%= @user.name %>
↓controllers/users_controller.rb
#--- 中略 ---# def update @user = User.find(params[:id]) if current_user.id != @user.id redirect_to user_path(current_user) else if @user.update(user_params) redirect_to user_path(@user) flash[:notice] = "You have updated user successfully." else render :edit end end ↓今回追加した箇所は下記2行です current_user.update(update_params) SampleMailer.send_when_update(current_user).deliver end
回答1件
あなたの回答
tips
プレビュー