Files
eminuxCRM/app/jobs/send_mailing_recipient_job.rb
T
eminuxandCursor c4e5f289cf
CI / scan_ruby (push) Failing after 11m20s
CI / scan_js (push) Successful in 10m35s
CI / lint (push) Has been cancelled
Commit iniziale di eminuxCRM: CRM Rails con pipeline, campagne email e Docker.
Include autenticazione, progetti isolati, mail marketing HTML con SMTP, test A/B e editor WYSIWYG.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 23:01:48 +02:00

30 lines
782 B
Ruby

class SendMailingRecipientJob < ApplicationJob
queue_as :mailers
def perform(recipient_id)
recipient = MailingRecipient.find_by(id: recipient_id)
return if recipient.nil?
mailing = recipient.mailing
return unless mailing.sending?
return unless recipient.pending? || recipient.status == "queued"
begin
CampaignMailer.raise_delivery_errors = true
recipient.deliver!
ensure
CampaignMailer.raise_delivery_errors = false if Rails.env.development?
end
nxt = mailing.mailing_recipients.pending.order(:id).first
return if nxt.nil?
wait = mailing.interval_seconds.to_i.seconds
if wait.positive?
self.class.set(wait: wait).perform_later(nxt.id)
else
self.class.perform_later(nxt.id)
end
end
end