FIX: don't blow up on badly encoding incoming email body
This commit is contained in:
parent
361030d8ad
commit
c6fac68ccd
|
@ -33,14 +33,19 @@ class IncomingEmailDetailsSerializer < ApplicationSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
def subject
|
def subject
|
||||||
@mail.subject.presence || "(no subject)"
|
@mail.subject.presence || I18n.t("emails.incoming.no_subject")
|
||||||
end
|
end
|
||||||
|
|
||||||
def body
|
def body
|
||||||
body = @mail.text_part.decoded rescue nil
|
body = @mail.text_part.decoded rescue nil
|
||||||
body ||= @mail.html_part.decoded rescue nil
|
body ||= @mail.html_part.decoded rescue nil
|
||||||
body ||= @mail.body.decoded rescue nil
|
body ||= @mail.body.decoded rescue nil
|
||||||
body.strip.truncate_words(100, escape: false)
|
|
||||||
|
return I18n.t("emails.incoming.no_body") if body.blank?
|
||||||
|
|
||||||
|
body.encode("utf-8", invalid: :replace, undef: :replace, replace: "")
|
||||||
|
.strip
|
||||||
|
.truncate_words(100, escape: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -63,6 +63,8 @@ en:
|
||||||
default_subject: "This topic needs a title"
|
default_subject: "This topic needs a title"
|
||||||
show_trimmed_content: "Show trimmed content"
|
show_trimmed_content: "Show trimmed content"
|
||||||
maximum_staged_user_per_email_reached: "Reached maximum number of staged users created per email."
|
maximum_staged_user_per_email_reached: "Reached maximum number of staged users created per email."
|
||||||
|
no_subject: "(no subject)"
|
||||||
|
no_body: "(no body)"
|
||||||
errors:
|
errors:
|
||||||
empty_email_error: "Happens when the raw mail we received was blank."
|
empty_email_error: "Happens when the raw mail we received was blank."
|
||||||
no_message_id_error: "Happens when the mail has no 'Message-Id' header."
|
no_message_id_error: "Happens when the mail has no 'Message-Id' header."
|
||||||
|
|
Loading…
Reference in New Issue