はじめに
ホームページを制作している途中で、問い合わせ機能を作りたくなった。
ActionMailerを使ってsmtpを使ってGmailに送信する時に起きたエラーを解消した話。
結論として、
・メールサーバの設定等はデフォルトのconfig/environments
・コード内で使用する環境変数はdotenv-rails
で使い分けることにしました(そもそもそういう使い方をすべきなのか...?)
環境
Ruby 2.7.0
Rails 5.1.6
やったこと
①Rails5で確認画面経由のメッセージ送信フォームを実装する を参考にActionMailerを導入
②環境変数を追加するために以下を追加
config/environments/development.rb
DEFAULT_EMAIL = '******@gmail.com'
DEFAULT_EMAIL_PASSWORD = '****************'
③ここで「ちゃんと環境変数を切り分けたいな」と思いdotenv-railsを導入してconfig/environmentsを削除
④そしたらこのエラー。
SMTP From address may not be blank: nil
メールサーバー設定の記述はしていたのでenvをちゃんと読み込めていないんだなと。
⑤あとは結論の通り。
デフォルトはdevelop.rbで、追加の環境変数は.envで解決。