Include autenticazione, progetti isolati, mail marketing HTML con SMTP, test A/B e editor WYSIWYG. Co-authored-by: Cursor <cursoragent@cursor.com>
30 lines
782 B
Ruby
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
|