我使用的ActionMailer deliver_laterW¯¯ActiveJobs/Sidekiq使用時,捕捉連接和SMTP錯誤:軌道4的ActionMailer - 如何使用deliver_later
config.active_job.queue_adapter = :sidekiq
,因爲我在開發模式W¯¯MailCatcher測試,唯一的錯誤,我可以美中不足的是errno的:: ECONNREFUSED,設置端口1026,而不是1025
當我測試deliver_now,我得到的變量Errno :: ECONNREFUSED錯誤引發,這是很好的
begin
MessageMailer.contact_me_email(@message).deliver_now
rescue Errno::ECONNREFUSED, Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPSyntaxError, Net::SMTPFatalError, Net::SMTPUnknownError => e
flash[:error] = "Problems sending mail. Please try again later"
# delete message or resend it ?
byebug
@message.destroy
format.html { render :new }
end
然而,當我要求deliver_later,那麼請求痠痛的sidekiq郵寄隊列,並且不拍攝的錯誤...
begin
MessageMailer.contact_me_email(@message).deliver_later(wait: 1.minute) # in mailers queue
rescue Errno::ECONNREFUSED, Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPSyntaxError, Net::SMTPFatalError, Net::SMTPUnknownError => e
flash[:error] = "Problems sending mail. Please try again later"
# delete message or resend it ?
byebug
@message.destroy
format.html { render :new }
end
我如何能捕捉在這種情況下,從SMTP錯誤救援?我想這是一個Sidekiq責任來處理它...任何暗示歡迎..