1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-12-01 05:43:04 +00:00

http 429 responses should suppress bounce messages to reduce email volume in rate limiting situations

هذا الالتزام موجود في:
Charlie Smurthwaite
2019-04-08 11:20:25 +01:00
الأصل 9f2e3ca1fa
التزام 183f3b4192
3 ملفات معدلة مع 10 إضافات و2 حذوفات

عرض الملف

@@ -54,7 +54,7 @@ class UnqueueMessageJob < Postal::Job
if queued_message.attempts >= Postal.config.general.maximum_delivery_attempts
details = "Maximum number of delivery attempts (#{queued_message.attempts}) has been reached."
if queued_message.message.scope == 'incoming'
# Send bounceds to incoming e-mails when they are hard failed
# Send bounces to incoming e-mails when they are hard failed
if bounce_id = queued_message.send_bounce
details += " Bounce sent to sender (see message <msg:#{bounce_id}>)"
end
@@ -240,7 +240,10 @@ class UnqueueMessageJob < Postal::Job
# Log the result
log_details = result.details
if result.type =='HardFail' && queued_message.message.send_bounces?
if result.type =='HardFail' && result.suppress_bounce
# The delivery hard failed, but requested that no bounce be sent
log "#{log_prefix} Suppressing bounce message after hard fail"
elsif result.type =='HardFail' && queued_message.message.send_bounces?
# If the message is a hard fail, send a bounce message for this message.
log "#{log_prefix} Sending a bounce because message hard failed"
if bounce_id = queued_message.send_bounce

عرض الملف

@@ -43,6 +43,10 @@ module Postal
result.type = 'SoftFail'
result.retry = true
result.connect_error = true
elsif response[:code] == 429
# Rate limit exceeded, treat as a hard fail and don't send bounces
result.type = 'HardFail'
result.suppress_bounce = true
else
# This is permanent. Any other error isn't cool with us.
result.type = 'HardFail'

عرض الملف

@@ -8,5 +8,6 @@ module Postal
attr_accessor :connect_error
attr_accessor :log_id
attr_accessor :time
attr_accessor :suppress_bounce
end
end