如何使用 Gmail API 中的 Drafts.send 在主题中发送 unicode 字符?

Posted

技术标签:

【中文标题】如何使用 Gmail API 中的 Drafts.send 在主题中发送 unicode 字符?【英文标题】:How to send unicode characters in subject using Drafts.send in Gmail API? 【发布时间】:2014-08-23 21:08:59 【问题描述】:

如果用户在 gmail Web UI 中创建了主题中包含 Unicode 字符的草稿,则调用 Draft.Send 似乎无法正确处理这些 Unicode 字符。

您可以通过以下方式进行测试:

    在 gmail 中创建主题为“snowman ☃”的草稿 调用 drafts.list 以获取 API Explorer 中的草稿 ID (https://developers.google.com/gmail/api/v1/reference/users/drafts/list#try-it) 在 api 浏览器中使用该草稿 ID 调用 Drafts.send (https://developers.google.com/gmail/api/v1/reference/users/drafts/send#try-it) 转到 Gmail 网络用户界面,然后转到已发送文件夹,然后查看电子邮件的主题为“snowman: â�ƒ

有什么解决方法吗?

【问题讨论】:

您终于找到解决此问题的方法了吗? 【参考方案1】:

电子邮件信息只能包含 ASCII 字符。见RFC 5335。您是否尝试对主题进行编码?

Subject: =?utf-8?b?c25vd21hbiDimIM=?=

您没有提及您使用的是什么语言,但大多数都有一个用于执行编码的库。

【讨论】:

我实际上是在暗示这是他们 api 中的一个错误。如果您查看它说直接使用 API 资源管理器的说明。另外,我问这个问题的原因是因为我实际上是在发送用户在他们的帐户中创建的草稿,所以我没有机会对主题进行编码,我只是调用 Drafts.send【参考方案2】:

使用 NodeJs,这是我用来发送 Unicode 字符和表情符号的方法。 Details in this comment

【讨论】:

以上是关于如何使用 Gmail API 中的 Drafts.send 在主题中发送 unicode 字符?的主要内容,如果未能解决你的问题,请参考以下文章

User.drafts 参考 - 错误“对标头无效”

Gmail NodeJs客户端中的Gmail API userId用例?

如何在客户端中使用 Firebase Auth gmail 保护 NestJS 中的 API?

如何使用谷歌联系人api以编程方式将手机联系人同步到android中的gmail

如何使用带有 OAuth 令牌的 Asp.Net MVC 中的 gmail API 更快地获取日期明智的电子邮件

Gmail API .NET:如何向一位发件人请求邮件