2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-05 08:59:27 +08:00

FEATURE: Add rejection message on rejected IncomingEmail

FIX: Better RateLimit description in rejected IncomingEmail
FEATURE: Send email when hitting a rate limit
This commit is contained in:
Régis Hanol 2016-03-07 16:56:17 +01:00
parent 090a064c41
commit 622d804d46
10 changed files with 56 additions and 13 deletions

View file

@ -23,6 +23,8 @@ module Email
class InvalidPost < ProcessingError; end
class InvalidPostAction < ProcessingError; end
attr_reader :incoming_email
def initialize(mail_string)
raise EmptyEmailError if mail_string.blank?
@raw_email = mail_string
@ -30,7 +32,7 @@ module Email
raise NoMessageIdError if @mail.message_id.blank?
end
def process
def process!
@from_email, @from_display_name = parse_from_field
@incoming_email = find_or_create_incoming_email
process_internal
@ -40,12 +42,12 @@ module Email
end
def find_or_create_incoming_email
IncomingEmail.find_or_create_by(message_id: @mail.message_id) do |incoming_email|
incoming_email.raw = @raw_email
incoming_email.subject = subject
incoming_email.from_address = @from_email
incoming_email.to_addresses = @mail.to.map(&:downcase).join(";") if @mail.to.present?
incoming_email.cc_addresses = @mail.cc.map(&:downcase).join(";") if @mail.cc.present?
IncomingEmail.find_or_create_by(message_id: @mail.message_id) do |ie|
ie.raw = @raw_email
ie.subject = subject
ie.from_address = @from_email
ie.to_addresses = @mail.to.map(&:downcase).join(";") if @mail.to.present?
ie.cc_addresses = @mail.cc.map(&:downcase).join(";") if @mail.cc.present?
end
end