Rails ActionMailer将回车符(= 0D)添加到html

时间:2018-10-20 22:49:26

标签: 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

我的邮件在preview 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

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

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

3 个答案:

答案 0 :(得分:4)

Rails的isn't an error部分。 Mailgun仅handles it in an undesirable manner

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

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

答案 1 :(得分:0)

通过删除电子邮件文本中的特殊字符(如“ñ”和重音符号),我能够避免每行末尾出现“ = 0D”。

答案 2 :(得分:0)

<%=  (@mails.html_part.body.decoded.to_s.split).join(" ").html_safe %>