【发布时间】:2019-11-04 20:45:32
【问题描述】:
我正在尝试使用 gmail rest api 发送电子邮件,一切正常,除非我尝试在主题中使用特殊字符。我尝试了不同的解决方案,例如:
`Subject: =?utf-8?B?${email.subject.toString('base64')}?=\n\n` +
`Subject: =?iso-8859-1?Q? ${quotedPrintable.encode(utf8.encode(email.subject))}?=\n\n` +
示例 2 的结果
这是实际代码:
const mail = Buffer.from(`From: ${from}\n` +
'Content-Type: text/html; charset=UTF-8\n' +
`To: ${to}\n` +
`Cc: ${cc}\n` +
`Bcc: ${bcc}\n` +
`Subject: =?utf-8?B?${email.subject.toString('base64')}?=\n\n` +
`${$.html()}`)
.toString('base64').replace(/\+/g, '-').replace(/\//g, '_');
const response = await axios.post(`https://www.googleapis.com/gmail/v1/users/${from}/messages/send?access_token=${token}`, {
raw: mail,
});
这是我要发送的主题的样本:
1 - = live unbound!! ???? ???? que viva España
【问题讨论】:
-
我可以问你关于你的问题吗? 1、能否提供example1和example2的结果? 2.您当前的脚本是否使用“example1”的方法? 3. 能否提供带有特殊字符的主题样本值?
-
@Tanaike 我已经更新了描述以包含您提出的要点。我当前的脚本只是发送没有任何编码的主题,例如:
Subject: ${email.subject}\n\n+ -
感谢您的回复和补充信息。但是我注意到你的问题已经解决了。很高兴您的问题得到解决。