Rails5.1.3でWebアプリケーション制作の勉強をしています。
メールの送信機能を試していますが、うまくいかないので質問させていただきます。
まだドメインを取得していない状態です。
新規に会員登録した場合のお礼メールを送信したいのです。
development.rbに以下のようにSMTPサーバー経由で送信する設定をしました。
development.rb config.action_mailer.delivery_method = :smtp config.action_mailer.raise_delivery_errors = true config.action_mailer.smtp_settings = { address: 'smtp.gmail.com', port: 587, user_name: 'sato.ichiro@gmail.com', password: '16桁のgoogleアプリパスワードを記述', domain: 'gmail.com' }
user_nameに制作中のサイトのメールアドレスを記述しました。(現在使用中のアドレスです。)
passwordに16桁のgoogleアプリパスワードを記述しました。
domeinはまだ取得していないので'exmple.com'と記述しています。
Action Mailerのプレビュー機能での表示確認はできています。
ためしに新規登録者にお礼のメールを送信するようにしましたが以下のエラーが出てしまいます。
Net::SMTPFatalError in Visitor::CustomersController#create 555 5.5.2 Syntax error. k3sm25357608pff.41 - gsmtp Extracted source (around line #32): 30 redirect_to :visitor_root 31 user = @customer_form.customer 32 ThanksMailer.thank_you(user).deliver_now---------Action Mailerのプレビュー機能での表示確認はできています。 33 else 34 flash.now.alert = '入力に誤りがあります。' 35 render action: 'new'
他の設定は以下のようにしています。
application_mailer.rb class ApplicationMailer < ActionMailer::Base default from: '運営局<sato.ichiro@gmail.com>' layout 'mailer' end
thanks_mailer.rb class ThanksMailer < ApplicationMailer default from: '運営局<sato.ichiro@gmail.com>' def thank_you(user) @user = user mail to: user.email, subject: "会員登録ありがとうございました。" end end
ドメインを取得していないのが原因なのでしょうか?記述や設定がおかいしのでしょうか?
どなたか教えていただけないでしょうか?宜しくお願いします。
追記
回答いただいた件でコンソールで試してみました。
config.action_mailer.delivery_method = :smtp config.action_mailer.raise_delivery_errors = true config.action_mailer.smtp_settings = { address: 'smtp.gmail.com', port: 587, user_name: 'sato.ichiro@gmail.com', password: '****************', domain: 'smtp.gmail.com' #authentication: 'plain',-----------$ rails sでエラーになるのでコメントアウト #enable_starttls_auto: true---------$ rails sでエラーになるのでコメントアウト }
SyntaxErrorが出るのですが間違いがわかりませんでした。
エラーの内容 syntax error, unexpected tIDENTIFIER, expecting '}' (SyntaxError) authentication: 'plain', syntax error, unexpected tIDENTIFIER, expecting '}' (SyntaxError) enable_starttls_auto: true
コンソールで以下を実行
user = Customer.find(5)
ThanksMailer.thank_you(user).deliver_now
コンソールで実行すると送信可能でした。
追記2
送信可能 default from:には日本語のみ記述 class ApplicationMailer < ActionMailer::Base default from: '運営局' layout 'mailer' end
送信可能 default from:に送信元のメールアドレスのみ記述 class ApplicationMailer < ActionMailer::Base default from: 'sato.ichiro@gmail.com' layout 'mailer' end
送信不可 エラー発生 Net::SMTPFatalError: 555 5.5.2 Syntax error. r13sm29313822pgq.25 - gsmtp default from:にアルファベットを使用するとエラーが発生。 class ApplicationMailer < ActionMailer::Base default from: 'abc事務局'-----------アルファベットを使用するとNG layout 'mailer' end
変な感じですがことごとくアルファベットを受け付けませんでした。
回答1件
あなたの回答
tips
プレビュー