質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1135閲覧

Rails Tutorial 「11.4 本番環境でのメール送信」で送信できない

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/05/04 03:30

前提・実現したいこと

Rails Tutorial 「11.4 本番環境でのメール送信」でアカウント有効化メールを送信したいです

発生している問題・エラーメッセージ

We're sorry, but something went wrong. If you are the application owner check the logs for more information.

$ heroku addons:create sendgrid:starter
を実行し表示されたリンクからSendGridを設定しました。
自分のメールアドレスでユーザー新規登録をしましたがメールが届かず上記のエラーが表示されました。

その際のログは以下の通りです。
$ heroku logs -t

2020-05-04T03:22:36.282345+00:00 app[web.1]: D, [2020-05-04T03:22:36.282215 #4] DEBUG -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] UserMailer#account_activation: processed outbound mail in 274.2ms 2020-05-04T03:22:36.318882+00:00 app[web.1]: I, [2020-05-04T03:22:36.318752 #4] INFO -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] Sent mail to ******@gmail.com (36.3ms) 2020-05-04T03:22:36.318925+00:00 app[web.1]: D, [2020-05-04T03:22:36.318864 #4] DEBUG -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] Date: Mon, 04 May 2020 03:22:36 +0000 2020-05-04T03:22:36.318927+00:00 app[web.1]: From: noreply@example.com 2020-05-04T03:22:36.318927+00:00 app[web.1]: To: ******@gmail.com 2020-05-04T03:22:36.318928+00:00 app[web.1]: Message-ID: <5eaf8a7c46137_42abee1dc3c58923b9@ea10cc4f-d1f2-4ad8-9de2-617dbd66d6d2.mail> 2020-05-04T03:22:36.318928+00:00 app[web.1]: Subject: Account activation 2020-05-04T03:22:36.318928+00:00 app[web.1]: Mime-Version: 1.0 2020-05-04T03:22:36.318929+00:00 app[web.1]: Content-Type: multipart/alternative; 2020-05-04T03:22:36.318930+00:00 app[web.1]: boundary="--==_mimepart_5eaf8a7c44945_42abee1dc3c58922bf"; 2020-05-04T03:22:36.318930+00:00 app[web.1]: charset=UTF-8 2020-05-04T03:22:36.318931+00:00 app[web.1]: Content-Transfer-Encoding: 7bit 2020-05-04T03:22:36.318931+00:00 app[web.1]: 2020-05-04T03:22:36.318931+00:00 app[web.1]: 2020-05-04T03:22:36.318933+00:00 app[web.1]: ----==_mimepart_5eaf8a7c44945_42abee1dc3c58922bf 2020-05-04T03:22:36.318933+00:00 app[web.1]: Content-Type: text/plain; 2020-05-04T03:22:36.318934+00:00 app[web.1]: charset=UTF-8 2020-05-04T03:22:36.318934+00:00 app[web.1]: Content-Transfer-Encoding: 7bit 2020-05-04T03:22:36.318934+00:00 app[web.1]: 2020-05-04T03:22:36.318935+00:00 app[web.1]: Hi AAAAA 2020-05-04T03:22:36.318935+00:00 app[web.1]: 2020-05-04T03:22:36.318936+00:00 app[web.1]: Welcome to the Sample App! Click on the link below to activate your account: 2020-05-04T03:22:36.318936+00:00 app[web.1]: 2020-05-04T03:22:36.318936+00:00 app[web.1]: https://mysterious-harbor-17577.herokuapp.com/account_activations/N5Xk4VMMvEdu-Oe5pz-D7w/edit?email=******%40gmail.com 2020-05-04T03:22:36.318937+00:00 app[web.1]: 2020-05-04T03:22:36.318937+00:00 app[web.1]: 2020-05-04T03:22:36.318937+00:00 app[web.1]: ----==_mimepart_5eaf8a7c44945_42abee1dc3c58922bf 2020-05-04T03:22:36.318938+00:00 app[web.1]: Content-Type: text/html; 2020-05-04T03:22:36.318938+00:00 app[web.1]: charset=UTF-8 2020-05-04T03:22:36.318938+00:00 app[web.1]: Content-Transfer-Encoding: 7bit 2020-05-04T03:22:36.318939+00:00 app[web.1]: 2020-05-04T03:22:36.318939+00:00 app[web.1]: <!DOCTYPE html> 2020-05-04T03:22:36.318940+00:00 app[web.1]: <html> 2020-05-04T03:22:36.318940+00:00 app[web.1]: <head> 2020-05-04T03:22:36.318941+00:00 app[web.1]: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 2020-05-04T03:22:36.318941+00:00 app[web.1]: <style> 2020-05-04T03:22:36.318941+00:00 app[web.1]: /* Email styles need to be inline */ 2020-05-04T03:22:36.318942+00:00 app[web.1]: </style> 2020-05-04T03:22:36.318942+00:00 app[web.1]: </head> 2020-05-04T03:22:36.318942+00:00 app[web.1]: 2020-05-04T03:22:36.318943+00:00 app[web.1]: <body> 2020-05-04T03:22:36.318943+00:00 app[web.1]: <h1>Sample App</h1> 2020-05-04T03:22:36.318943+00:00 app[web.1]: 2020-05-04T03:22:36.318944+00:00 app[web.1]: <p>Hi AAAAA,</p> 2020-05-04T03:22:36.318944+00:00 app[web.1]: 2020-05-04T03:22:36.318944+00:00 app[web.1]: <p> 2020-05-04T03:22:36.318945+00:00 app[web.1]: Welcome to the Sample App! Click on the link below to activate your account: 2020-05-04T03:22:36.318945+00:00 app[web.1]: </p> 2020-05-04T03:22:36.318945+00:00 app[web.1]: 2020-05-04T03:22:36.318946+00:00 app[web.1]: <a href="https://mysterious-harbor-17577.herokuapp.com/account_activations/N5Xk4VMMvEdu-Oe5pz-D7w/edit?email=******%40gmail.com">Activate</a> 2020-05-04T03:22:36.318946+00:00 app[web.1]: 2020-05-04T03:22:36.318946+00:00 app[web.1]: </body> 2020-05-04T03:22:36.318947+00:00 app[web.1]: </html> 2020-05-04T03:22:36.318947+00:00 app[web.1]: 2020-05-04T03:22:36.318947+00:00 app[web.1]: ----==_mimepart_5eaf8a7c44945_42abee1dc3c58922bf-- 2020-05-04T03:22:36.318947+00:00 app[web.1]: 2020-05-04T03:22:36.319162+00:00 app[web.1]: I, [2020-05-04T03:22:36.319096 #4] INFO -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] Completed 500 Internal Server Error in 476ms (ActiveRecord: 6.5ms) 2020-05-04T03:22:36.319625+00:00 app[web.1]: F, [2020-05-04T03:22:36.319548 #4] FATAL -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] 2020-05-04T03:22:36.319660+00:00 app[web.1]: F, [2020-05-04T03:22:36.319605 #4] FATAL -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] Net::SMTPFatalError (550 Unauthenticated senders not allowed 2020-05-04T03:22:36.319661+00:00 app[web.1]: ): 2020-05-04T03:22:36.319705+00:00 app[web.1]: F, [2020-05-04T03:22:36.319658 #4] FATAL -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] 2020-05-04T03:22:36.319784+00:00 app[web.1]: F, [2020-05-04T03:22:36.319708 #4] FATAL -- : [6dc709b8-942d-4be6-81d8-a38ce83c367c] app/models/user.rb:42:in `send_activation_email' 2020-05-04T03:22:36.319785+00:00 app[web.1]: [6dc709b8-942d-4be6-81d8-a38ce83c367c] app/controllers/users_controller.rb:23:in `create' 2020-05-04T03:22:36.813152+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=mysterious-harbor-17577.herokuapp.com request_id=6a459610-4ec1-4e3a-b8cd-9706ef732891 fwd="162.230.251.4" dyno=web.1 connect=0ms service=2ms status=304 bytes=112 protocol=https

文面は作成されているようですがメールは届いていません。
以下のメッセージがあるのでuser.rbusers_controller.rbに原因があるのかもしれませんが、見つけられません。
Completed 500 Internal Server Error in 301ms (ActiveRecord: 16.4ms)
Net::SMTPFatalError (550 Unauthenticated senders not allowed
app/models/user.rb:42:in send_activation_email' app/controllers/users_controller.rb:23:in create'

rails

1(user.rb) 2class User < ApplicationRecord 3 attr_accessor :remember_token, :activation_token 4 before_save :downcase_email 5 before_create :create_activation_digest 6 validates :name, presence: true, length: { maximum: 50 } 7 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(.[a-z\d\-]+)*.[a-z]+\z/i 8 validates :email, presence: true, length: { maximum: 255 }, format: { with: VALID_EMAIL_REGEX }, uniqueness: {case_sensitive: false} 9 has_secure_password 10 validates :password, presence: true, length: { minimum: 6 }, allow_nil: true 11 12 def User.digest(string) # 渡された文字列のハッシュ値を返す. 13 cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : 14 BCrypt::Engine.cost 15 BCrypt::Password.create(string, cost: cost) 16 end 17 18 def User.new_token # ランダムなトークンを返す 19 SecureRandom.urlsafe_base64 20 end 21 22 def remember 23 self.remember_token = User.new_token 24 update_attribute(:remember_digest, User.digest(remember_token)) 25 end 26 27 def authenticated?(attribute, token) 28 digest = send("#{attribute}_digest") 29 return false if digest.nil? 30 BCrypt::Password.new(digest).is_password?(token) 31 end 32 33 def forget 34 update_attribute(:remember_digest, nil) 35 end 36 37 def activate 38 update_attribute(:activated, true) 39 update_attribute(:activated_at, Time.zone.now) 40 end 41 42 def send_activation_email 43 UserMailer.account_activation(self).deliver_now 44 end 45 46 private 47 48 def downcase_email 49 self.email = email.downcase 50 end 51 52 def create_activation_digest 53 self.activation_token = User.new_token 54 self.activation_digest = User.digest(activation_token) 55 end 56 57end

rails

1(users_controller.rb) 2class UsersController < ApplicationController 3 before_action :logged_in_user,only:[:index,:edit,:update,:destroy] 4 before_action :correct_user, only:[:edit,:update] 5 before_action :admin_user, only: :destroy 6 7 def index 8 @users = User.paginate(page: params[:page]) 9 end 10 11 12 def new 13 @user = User.new 14 end 15 16 17 def show 18 @user = User.find(params[:id]) 19 end 20 21 def create 22 @user = User.new(user_params) 23 if @user.save 24 @user.send_activation_email 25 flash[:info] = "Please check your email to activate your account." 26 redirect_to root_url 27 else 28 render 'new' 29 end 30 end 31 32 33 def edit 34 @user = User.find(params[:id]) 35 end 36 37 def update 38 @user = User.find(params[:id]) 39 if @user.update_attributes(user_params) 40 #更新に成功した場合扱う 41 flash[:success] = "Profile updated" 42 redirect_to @user 43 else 44 render 'edit' 45 end 46 end 47 48 def destroy 49 User.find(params[:id]).destroy 50 flash[:success] = "User deleted" 51 redirect_to users_url 52 end 53 54 private 55 56 def user_params 57 params.require(:user).permit(:name, :email, :password, 58 :password_confirmation) 59 end 60 61 #ログイン済みユーザーかどうか確認 62 def logged_in_user 63 unless logged_in? 64 store_location 65 flash[:danger] = "Please log in" 66 redirect_to login_url 67 end 68 end 69 70 #正しいユーザーかどうか確認 71 def correct_user 72 @user = User.find(params[:id]) 73 redirect_to(root_url) unless current_user?(@user) 74 end 75 76 #管理者かどうか確認 77 def admin_user 78 redirect_to(root_url) unless current_user.admin? 79 end 80 81 82end

すみませんがアドバイスをお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

すみません、勘違いでそもそもメール送信機能が備わっていないことが分かりました。
SendGridで備えられるようなので、改めて調べてみます。

投稿2020/05/09 11:15

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問