deviseでデフォルトではgmailに送れないのですが、下記の設定で
送れるようになります。
config/environment/development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "smtp.gmail.com",
:user_name => '[myaccount@gmail.com]',
:password => '[app_password]',
:enable_starttls_auto => true,
:authentication => "plain",
}
この場合、試用のためにuser_name
、password
に生の文字列を直接入れてましてエラーがでました。
Net::SMTPAuthenticationError in Devise::RegistrationsController#create
534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgn
原因はpassword
が違うということなんですが、googleのアプリパスワードは間違っていません。
対応策:
環境変数に換えて打ち直すと実行できた。
:user_name => Rails.application.secrets.google_address,
:password => Rails.application.secrets.google_password,
おそらく生パスワードをgoogle側で拒否しているように思われる(詳しく調べてない、調べられない)。