Sendgridで2FA認証をオンにしたときに、アプリの構成を更新する必要があることに気づかなく、Rails6で作成したWebアプリからメールが届かなくなっていました。(新規会員登録などのメール送信が含まれるボタンは500エラーになる)
この件について、解決方法を残しておきます。
前提
原因を調べていると以下については、問題ありませんでした。
- 去年まで問題なくメール送信ができていた
- その後ソースコードを触っていない
- ローカルではGmailで送信できる
原因
どうやら、最近はSendgridで2FA認証をオンにする必要があり、そのせいでアプリの構成を更新する必要があるらしいです。
Rails6でのアプリになりますが、大方、他の言語でも似たような設定をいじるだけです。
app/config/environments/production.rb
(以前のソースコード)
config.action_mailer.default_url_options = { :host => 'https://ドメイン.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
# SendGrid
:enable_starttls_auto => true,
:address => "smtp.sendgrid.net",
:port => 587,
:domain => "heroku.com",
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
}
Herokuのconfig
SENDGRID_API_KEY: SG.8jay....API Key(省略)
SENDGRID_PASSWORD: SendGridのパスワード
SENDGRID_USERNAME: SendGridのメールアドレス@kke.com
解決
上記の設定の構成が少し変わるので、以下のように変更する必要があります。
SENDGRID_PASSWORD: SG.8jay....API Key(省略)
SENDGRID_USERNAME: apikey
新しい構成では、パスワード(SENDGRID_PASSWORD)にAPI Keyを入力して、ユーザー名(SENDGRID_USERNAME)にはapikey
と入力するようです。
これで僕の場合は、正常にメールが送信されるようになりました!