【问题标题】:Special characters in subject gmail api node.js主题 gmail api node.js 中的特殊字符
【发布时间】:2019-11-04 20:45:32
【问题描述】:

我正在尝试使用 gmail rest api 发送电子邮件,一切正常,除非我尝试在主题中使用特殊字符。我尝试了不同的解决方案,例如:

example1

`Subject: =?utf-8?B?${email.subject.toString('base64')}?=\n\n` +

示例 1 的结果

example2

`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 +
  • 感谢您的回复和补充信息。但是我注意到你的问题已经解决了。很高兴您的问题得到解决。

标签: node.js gmail


【解决方案1】:

我已经找到了解决这个问题的方法

`Subject: =?UTF-8?Q?${quotedPrintable.encode(utf8.encode(email.subject))}?=\n\n`

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多