ActionMailer「deliver_later」でメールが送信できない
よろしくお願い致します。
Heroku環境
Rails 5.1.5
gem delayed_job
/daemons
/capistrano
導入済み
ActiveJobを利用して非同期でメール送信を行ないたいと思っています。
開発環境ではletter_openerを使用してメールが届くことをすでに確認済みです。
【現在の状況】
モデルでメール送信用のメソッドを記述
def self.notification
NoticeMailer.notification.deliver_later
end
Capfile
require 'capistrano/delayed_job'
config/deploy.rb
set :delayed_job_workers, 1
set :delayed_job_roles, [:app]
【問題】
Heroku側でメール送信を試みた際、ログを見る限りジョブをキューに追加するところまではできているのに、送信ができていないと言う状況です。
手動でheroku run rails jobs:worker
とワーカーを起動すると、メールを送信することができます。
また、メール送信のメソッドをdeliver_later
ではなくdeliver_now
へ変更した場合もメール送信できています。
【自分で試した方法】
Herokuのガイドを参考に、
Procfile
worker: rails jobs:work
モデル側
def self.notification
NoticeMailer.delay.notification
end
へ変更してみましたが、結果変わらず手動でワーカーを立ち上げない限り、メールが届かないと言う状況です。
【懸念点】
「daemonsを導入しているにも関わらず、ワーカーが立ち上がっていない」という点が問題なのではないかと考えています。
関係のありそうなファイルにrequire 'daemons'してみたりなどしてみましたが、効果がなく…
何か良い方法をご存知の方はいらっしゃいませんでしょうか。
よろしくお願い致します。