mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
FIX: better error handling for incoming emails
This commit is contained in:
@ -24,7 +24,7 @@ module Email
|
||||
rescue => e
|
||||
log_email_process_failure(@mail, e)
|
||||
incoming_email = receiver.try(:incoming_email)
|
||||
rejection_message = handle_failure(@mail, e, incoming_email)
|
||||
rejection_message = handle_failure(@mail, e)
|
||||
if rejection_message.present?
|
||||
set_incoming_email_rejection_message(incoming_email, rejection_message.body.to_s)
|
||||
end
|
||||
@ -33,7 +33,7 @@ module Email
|
||||
|
||||
private
|
||||
|
||||
def handle_failure(mail_string, e, incoming_email)
|
||||
def handle_failure(mail_string, e)
|
||||
message_template = case e
|
||||
when Email::Receiver::EmptyEmailError then :email_reject_empty
|
||||
when Email::Receiver::NoSenderDetectedError then :email_reject_empty
|
||||
@ -105,7 +105,7 @@ module Email
|
||||
end
|
||||
|
||||
def set_incoming_email_rejection_message(incoming_email, message)
|
||||
incoming_email.update_attributes!(rejection_message: message)
|
||||
incoming_email.update_attributes!(rejection_message: message) if incoming_email
|
||||
end
|
||||
|
||||
def log_email_process_failure(mail_string, exception)
|
||||
|
@ -284,6 +284,8 @@ module Email
|
||||
end
|
||||
end
|
||||
|
||||
nil
|
||||
rescue StandardError
|
||||
nil
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user