6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開発でチャレンジして、失敗・成功したことをシェアしよう by 転職ドラフトAdvent Calendar 2024

Day 3

【Error・学習】本番環境メール設定Koyebデプロイ後エラー。環境変数の設定について

Last updated at Posted at 2024-11-01

はじめに

今回は開発環境で「パスワードを忘れた方はこちらから」に関係する実装を終えた後のお話。本番環境でもメールの送受信が可能にするための設定を行いました。

デプロイ先をKoyebというサービスを初めて使用してエラーが出たのでエラー内容と解決までの道のり?を記事にまとめていきたいと思います。

環境

  • Windows, WSL
  • Docker
  • Ruby 3.2.3
  • Rails 7.1.3

ローカル~本番環境のメール設定参考記事

先にローカル~本番環境でのメール設定は次の記事を参考にしました。(私のも載せておきます)

本題

記事を参考に私はまず以下の事を行いました

  • Google側でアプリのパスワード16桁等を生成
  • gemファイルにgem 'dotenv-rails’追記しインストール&.envファイル生成・編集
  • 本番環境の設定をconfig/environments/production.rbファイルに入力
  • config/initializers/devise.rbにも追記
  • そしてKoyeb側で「Secrets」から「MAILER_SENDER」と「MAILER_PASSWORD」を追加(このMAILER_SENDERなどの文字はそれぞれ異なると思います。)
    👇例:NameにはMAILER_SENDER。Valueには.envに記載した使用するメールアドレスを入力。同じようにMAILER_PASSWORDも設定。
    Koyeb

デプロイ後エラー発生

まずはエラー内容から

[033adc77-8c39-934b-b16f-2a9f80eed2a9] ArgumentError (SMTP-AUTH requested but missing user name):
[033adc77-8c39-934b-b16f-2a9f80eed2a9]   
[033adc77-8c39-934b-b16f-2a9f80eed2a9] app/controllers/users/passwords_controller.rb:5:in `create'

このエラーメッセージは、SMTPサーバーにメール送信の認証を要求しましたが、ユーザー名が見つからないために発生している状態です。具体的には、RailsMAILER_SENDER という環境変数で設定したGmailのメールアドレスを認識できていない状態になります。

エラーの内容を分解すると

  1. ArgumentError: Rubyで引数が正しく渡されていないときに出るエラーです。ここでは、SMTP認証の際に「ユーザー名(メールアドレス)」が必要なのに、見つからないためにエラーが出ています。
  2. SMTP-AUTH requested but missing user name: SMTP(メールを送信するためのプロトコル)を使う際に、「ユーザー名」が不足しているというメッセージです。メール送信には、送り元のメールアドレス(ユーザー名)とパスワードが必要ですが、今回の設定ではユーザー名(メールアドレス)が設定されていないか、正しく読み込まれていないためにエラーが発生しています。

Koyeb上で確かに環境設定したはずなのに??

Koyeb上で確かに設定はしていましたが。
実は、もう一つ設定箇所がありました:scream:(探すまでに結構時間かかった)

以下手順になります

  • Overviewから該当アプリを選択

  • Settingsをクリック

  • Environment variablesを選択しAdd anotherで次のように設定します(※先にSecretの方で設定することでプルダウンで選択できるようになります
    Image from Gyazo

  • Add完了したら下の方にスクロールするとある「Save add deproy」でBuildして無事デプロイされれば完了!!

さいごにまとめ

エラーコードをGPTに確認してもらった際、新たにコードを追加するなど明らかに違うのでは、と少し察することができてよかった(沼ループにはまるところだった💦)
はじめてのデプロイ先で記事が少なかったので、無事に本番環境でもメールの動作を確認出来てよかったです
今回の記事が何か参考になれば幸いです

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?