前提・実現したいこと
メールマガジンのように、リスト全員にメールを送るメソッドを実装しています。
(個々人のメールアドレスが漏洩しないよう、全員一人ひとりのアドレスをto:に入れています。)
しかし、実際のアプリで35名に対し、メールを送ろうとしたら、
ブラウザが30秒実行中になってしまい、タイムアウトエラーが発生してしまいました。
処理を軽くするためにはどうすればよいでしょうか?
実アプリでして・・・大変頭を悩ませています。
どなたか教えて下さると嬉しいです。
該当のソースコード
controller.rb
@supporters = Supporter.where(event_id: params[:event_id], activation: 1, agreement: 1).pluck(:email, :name) @supporters.each do |supporter| EntryMailer.report_new_mail(@event1,@report1,supporter,url).deliver_now end
entry_mailer.rb
def report_new_mail(event,report,supporter,url) @event_title = event.title @report_title = report @supporter = supporter @url = "https://#{url}" mail(subject: "新規投稿" , to: @supporter[0], from: '"office" <info@###>') end
試したこと
ちなみになのですが・・・、entry_mailer.rbの中で、
each do || でサポーターのメールアドレス1件ずつ取り出して、toに入れようとしたのですが、
エラーになってしまい、仕方がなくコントローラーでeach do しています。
また、to: に全員のメールアドレスの記載がされたり、
bccで送信するといった方法はとりたくないと考えております。
メールマガジンのように、to:に1名1名入れて送信したいです。
教えて頂けますと本当にうれしいです。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー