Rails ActionMailer将回车符(= 0D)添加到html中每一行的末尾

Rom*_*man 1 ruby-on-rails actionmailer

我的ActionMailer在每一行的末尾添加了回车符:

<!DOCTYPE html>=0D
<html>=0D
<head>=0D
...
this is stuff=0D
=0D
This intro has some content in it.=0D
=0D
blah.=0D
=0D
Run Code Online (Sandbox Code Playgroud)

我的邮件在预览中 host/rails/mailers/user_mailer/periodic_digest.html(以及在mailcatcher中)都呈现得非常好,但是当我通过Mailgun发送邮件时,最终我的文本之间出现了双行间距。

app/mailers/user_mailer.rb:periodic_digest

m = mail(from: 'blah', to: 'me')
puts m.html_part.body.decoded
Run Code Online (Sandbox Code Playgroud)

我确实得到了格式正确的html。

如何在不将回车符=0D附加到每一行的情况下发送html ?

cor*_*ard 5

不是 Rails 的错误。Mailgun只是以一种不良的方式来处理它

回车符用于强制将行换成带引号的可打印编码文本。如果您要发送多部分电子邮件或纯文本电子邮件,则RFC 5322(及其之前的2822和822)指定必须将行换行的字符数不超过998个。出于实际目的,大多数电子邮件客户端都将近70个字符换行。

为了插入可见的换行符,您需要使用回车符和换行符,您可能已经习惯将其表示为\r\n。这与代码或文本文件中典型的unix样式的行尾(只是换行符)形成对比。