Invalid S/MIME email signatures when email contains Unicode characters
Email signatures are invalid if Unicode is included in the text of the email. This seems to be caused by line-end encoding issues of the mail
gem with quoted-printable
transfer encoding, which results in a mismatch between the step in which the signature is calculated and what is actually delivered.
Premailer seems not to be the culprit here (we wondered if this had to do with https://github.com/fphilipe/premailer-rails/issues/240). The same behaviour is observed when premailer is disabled (tested fully removing the gem, uncommenting relevant initialization code & verifying premailer is not in the list of registered interceptors).
In our initial tests, downgrading the mail
gem to 2.6.6
fixes the issue. This requires downgrading also email_spec
. We'll also be submitting a proposal MR shortly.
Relevant related issue upstream: https://github.com/mikel/mail/issues/1190
Please note specifically the comment in there:
After parsing and encoding this specific message two times it ends up with two \r\r that the browser inteprets as two lines.
Also DKIM and S/MIME signatures get invalidated as the message is effectively changed.