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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

解決済

2回答

537閲覧

「アカウント有効化」できなくて困っています(railsチュートリアル)

yamady

総合スコア176

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

3クリップ

投稿2017/05/01 05:57

編集2017/05/02 06:54

Ruby on Railsチュートリアル第11章「アカウントの有効化」できなくて困っています。
チュートリアルに沿って、進めてきたのですがSendGridからメールが送られてこないエラーが発生しました。

Ruby

1 config.action_mailer.delivery_method = :smtp 2 config.action_mailer.raise_delivery_errors = true 3 config.action_mailer.perform_deliveries = true 4 config.action_mailer.default :charset => "utf-8" 5 host = 'localhost:3000' 6 config.action_mailer.default_url_options = { host:'localhost', port: '3000' } 7 ActionMailer::Base.smtp_settings = { 8 :address => 'smtp.sendgrid.net', 9 :port => '587', 10 :authentication => :plain, 11 :user_name => ENV['SENDGRID_USERNAME'], 12 :password => ENV['SENDGRID_PASSWORD'], 13 :domain => 'localhost:3000', 14 :enable_starttls_auto => true 15 }

上記を「development.rb」にて設定したはずなのですが、一向に動く気配がありません。。実際の登録画面でアカウント登録をすると、下記のエラーが発生してしまいます。

Net::SMTPFatalError in UsersController#create
550 Unauthenticated senders not allowed
Extracted source (around line #52):

Ruby

1・・・ 2 # 有効化用のメールを送信する 3 def send_activation_email 4 UserMailer.account_activation(self).deliver_now 5 end 6 7 private 8 9 # メールアドレスをすべて小文字にする 10 def downcase_email 11 self.email = email.downcase 12 end 13 14 # 有効化トークンとダイジェストを作成および代入する 15 def create_activation_digest 16 self.activation_token = User.new_token 17 self.activation_digest = User.digest(activation_token) 18 end 19end

下記にエラーがあるみたいです。。

(users_controller.rb)

Ruby

1・・・ 2 def create 3 @user = User.new(user_params) 4 if @user.save 5 @user.send_activation_email 6 flash[:info] = "Please check your email to activate your account." 7 redirect_to root_url 8 else 9 render 'new' 10 end 11 end 12・・・

(User.rb)

Ruby

1・・・ 2 # アカウントを有効にする 3 def activate 4 update_attribute(:activated, true) 5 update_attribute(:activated_at, Time.zone.now) 6 end 7 8 # 有効化用のメールを送信する 9 def send_activation_email 10 UserMailer.account_activation(self).deliver_now 11 end 12・・・

何度も申し訳ありませんが、お助けくださいませ。
どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

問題が修正されたので改めて

550 Unauthenticated senders not allowed

は ID, Password が認証できなかったときのみ返すエラーです。
ちゃんと環境変数SENDGRID_USERNAME, SENDGRID_PASSWORDはセットしてありますか?

http://stackoverflow.com/questions/28642435/how-to-send-an-email-in-development-with-actionmailer-sendgrid
にSendGridのサポートに問い合わせた結果があります。

投稿2017/05/01 22:53

TakeoAsai

総合スコア880

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

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

yamady

2017/05/02 06:48

何度もご回答いただき、ありがとうございます。 環境変数は :user_name => ENV['***********@kke.com'], :password => ENV['*************'], と設定しているのですが、やはり下記のエラーとなってしまいました。 550 Unauthenticated senders not allowed # 有効化用のメールを送信する def send_activation_email UserMailer.account_activation(self).deliver_now end private
TakeoAsai

2017/05/02 06:52

ENV['SENDGRID_USERNAME'] の SENDGRID_USERNAMEの部分を書き換えてはいけません。 :user_name => 'あなたのid', :password => 'あなたのpassword', とするか、Consoleから set SENDGRID_USERNAME=あなたのID と設定してください
yamady

2017/05/02 07:05

ありがとうございます。メールが届きました! 届いた瞬間、感動しました(涙) プログラミングを始めて本当によかったと思えました。ありがとうございます!!
guest

0

config.action_mailer.delivery_method = :test

:test だと ActionMailer::Base.deliveries へメールの内容が保存されます。
実際には送信されません。

投稿2017/05/01 06:42

TakeoAsai

総合スコア880

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

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

yamady

2017/05/01 07:57

ご回答いただき、ありがとうございます。 こちら:test→ :smtpに変更したのですが、解決しませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問