gpt4 book ai didi

ruby-on-rails - 换行符在 Sendgrid X-SMTPAPI header 中解析为 =0A

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:11 24 4
gpt4 key购买 nike

我正在使用 Sendgrid 将电子邮件发送到邮件列表,使用 X-SMTPAPI header 指定多个收件人。来自Sendgrid documentation “ header 必须换行以将行长度保持在 72 以下。”

我正在使用 ActionMailer 发送电子邮件,并使用 headers 方法设置 X-SMTPAPI header 。为了保持行少于 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 ")

我没有在标题中获取换行符,而是获取了以下内容(来自日志文件)

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"]}

请注意,\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"]}

请注意,我添加的换行符仍显示为“=0A”。但是似乎有些东西自己添加了包装。这种换行是自动的,足以防止我的标题行长度超过要求吗?

最佳答案

如果您给 ActionMailer 适当的间距,ActionMailer 实际上会为您处理折叠和编码行。您应该使用 JSON.generate 为其指定间距:

例如

headers["X-SMTPAPI"] = JSON.generate({
:category => "welcome_email",
:to => ['user1@example.com','user2@example.com','user3@example.com','user4@example.com','user5@example.com','user6@example.com']
}, :indent => ' ')

这会导致:

X-SMTPAPI: { "category":"welcome_email", "to":[  "user1@example.com",
"user2@example.com", "user3@example.com", "user4@example.com",
"user5@example.com", "user6@example.com"]}

如您所见,当 ActionMailer 遇到空格时,它会为您包装东西 - 不需要通常的 \r\n

关于ruby-on-rails - 换行符在 Sendgrid X-SMTPAPI header 中解析为 =0A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com