我使用Sendgrid将邮件发送到邮件列表,使用X-SMTPAPI标头指定多个收件人.从Sendgrid文档 "必须包装标题以保持行长度低于72".
我正在使用ActionMailer发送电子邮件,并使用该headers方法设置X-SMTPAPI标头.为了保持少于72个字符的行,我尝试用逗号+换行符+空格替换每个逗号.例如,
headers["X-SMTPAPI"] = {
:to => ['user1@example.com','user2@example.com','user3@example.com','user4@example.com','user5@example.com','user6@example.com']
}.to_json.gsub(',',",\n ")
Run Code Online (Sandbox Code Playgroud)
而不是在我的标题中获取换行符,我得到以下(从日志文件)
X-SMTPAPI: {"to":["user1@example.com",=0A "user2@example.com",=0A "user3@example.com",=0A "user4@example.com",=0A "user5@example.com",=0A "user6@example.com"]}
Run Code Online (Sandbox Code Playgroud)
请注意,\n字符正在替换为=0A.Sendgrid服务器将此序列拒绝为无效.
我有什么想法可以将正确的换行符添加到标题中?
编辑:我尝试添加"puts headers"以查看标题中设置的内容.然后就是我发现的
Date: Sat, 13 Apr 2013 18:21:36 -0400
Message-ID: <5169da701cd26_5343fe1776afc50749b4@saunders.mail>
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
X-SMTPAPI: {"to":["user1@example.com",=0A "user2@example.com",=0A
"user3@example.com",=0A "user4@example.com",=0A "user5@example.com",=0A
"user6@example.com"]}
Run Code Online (Sandbox Code Playgroud)
请注意,我添加的换行符仍然显示为"= 0A".但有些东西似乎在增加自己的包装.这种包装是自动的,并且足以使我的标题行长度不超过要求吗?