前提・実現したいこと
railsでチャットアプリを開発しております。
メールサーバーはconohaのメールサーバーを利用しており、サンダーバードにて送受信はできております。
deviseを利用しており、会員登録時などにメール認証を活用していますが、本番環境ではメールを送信できず、画面遷移も
"500 Internal Server Error"ページに遷移してしまいます。
しかしながら、データベースには登録されています。(当然、認証メールが届かないのでアカウントは利用不可)
メール送信、正しい画面遷移を実現したいと考えています。
どんなことでも良いのでコメントをいただけると幸いです。よろしくお願いいたします。
発生している問題・エラーメッセージ
production.log
ログではメールを送ろうとしているみたいです。。。
I, [2020-01-02T03:45:14.860731 #729] INFO -- : [*] Started POST "/users/confirmation" for IPアドレス at 2020-01-02 03:45:14 +0900 I, [2020-01-02T03:45:14.861993 #729] INFO -- : [*] Processing by Devise::ConfirmationsController#create as HTML I, [2020-01-02T03:45:14.862094 #729] INFO -- : [*] Parameters: {"utf8"=>"✓", "authenticity_token"=>"***", "user"=>{"email"=>"メールアドレス"}, "commit"=>"送信"} D, [2020-01-02T03:45:14.864029 #729] DEBUG -- : [*] User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`unconfirmed_email` = 'メールアドレス' ORDER BY `users`.`id` ASC LIMIT 1 D, [2020-01-02T03:45:14.866518 #729] DEBUG -- : [*] User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = 'メールアドレス' ORDER BY `users`.`id` ASC LIMIT 1 D, [2020-01-02T03:45:14.867093 #729] DEBUG -- : [*] (0.1ms) BEGIN D, [2020-01-02T03:45:14.868245 #729] DEBUG -- : [*] (0.1ms) COMMIT I, [2020-01-02T03:45:14.869725 #729] INFO -- : [*] Rendering devise/mailer/confirmation_instructions.html.erb I, [2020-01-02T03:45:14.870078 #729] INFO -- : [*] Rendered devise/mailer/confirmation_instructions.html.erb (0.3ms) D, [2020-01-02T03:45:14.870521 #729] DEBUG -- : [*] Devise::Mailer#confirmation_instructions: processed outbound mail in 1.8ms I, [2020-01-02T03:45:14.872170 #729] INFO -- : [*] Sent mail to メールアドレス (1.6ms) D, [2020-01-02T03:45:14.872213 #729] DEBUG -- : [*] Date: Thu, 02 Jan 2020 03:45:14 +0900 From: 送信元メールアドレス Reply-To: 送信元メールアドレス To: 受信先メールアドレス Message-ID: <5e0ce8bad4b98_2d92b282c18467c41816@163-44-170-225.mail> Subject: =?UTF-8?Q?=E3=82=A2=E3=82=AB=E3=82=A6=E3=83=B3=E3=83=88=E3=81=AE=E6=9C=89=E5=8A=B9=E5=8C=96=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6?= Mime-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 暗号化された文字列 I, [2020-01-02T03:45:14.872669 #729] INFO -- : [*] Rendering errors/internal_server_error.html.erb within layouts/error I, [2020-01-02T03:45:14.872868 #729] INFO -- : [*] Rendered errors/internal_server_error.html.erb within layouts/error (0.1ms) I, [2020-01-02T03:45:14.873108 #729] INFO -- : [*] Completed 500 Internal Server Error in 11ms (Views: 0.7ms | ActiveRecord: 1.2ms)
該当のソースコード
production.rb
# ActionMailer config.action_mailer.raise_delivery_errors = true config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { host: 'ドメイン名', :protocol => 'https' } host = 'ドメイン名' config.action_mailer.smtp_settings = { :address => "smtp.ドメイン名.conoha.io", :port => '587', :authentication => :plain, :user_name => "メールサーバーのユーザー名", :password => ENV["MAIL_PASSWORD"], :domain => 'ドメイン名', :enable_starttls_auto => true }
試したこと
下記のサイトを参考に試行錯誤しましたが解決できませんでした。
Rails Guide Action Mailer の基礎
【Rails】ConoHaメールサーバーを契約してRailsアプリからメール送信する方法
基本的に検索するとGMAILの記事が多かったです。
現在私が考えている可能性といたしましては、Active Jobに原因があるのかなと考えております。
Rails Guide Active Job
railsのメール機能(ActionMailer)にもデフォルトでActiveJobが使われているらしく、ActiveJobの本番対応をしていないのが現状です。
補足情報(FW/ツールのバージョンなど)
ruby
rails 5.1.6
ActionCable(websocket)
mysql
capistrano
unicorn
nginx
devise gem
conohaVPS
CentOS8
ssl let's encrypt
ConohaVPSのメールサーバー
サンダーバード
ここにより詳細な情報を記載してください。