通过 gmail api 发送电子邮件时在电子邮件主题中使用撇号创建问题
Posted
技术标签:
【中文标题】通过 gmail api 发送电子邮件时在电子邮件主题中使用撇号创建问题【英文标题】:Using apostrophe in email subject while sent email via gmail api creating an issue 【发布时间】:2021-10-14 16:10:20 【问题描述】:虽然使用下面的subject
发送电子邮件,其中apostrophe
替换为其他字符
Actual
主题:我们会为你打 100,800 通电话
Mail Shows
主题:我们将为您拨打 100,800 个电话
当我通过 api 发送电子邮件时发生问题,当我从 SMTP 发送电子邮件时它工作正常
请检查我下面的 api 代码
string msg = "From: " + FromName + "<" + From + ">" + " \r\n" +
"To: " + ToName + "<" + To + ">" + " \r\n" +
"BCC: " + BCCEmail + " \r\n" +
"Subject: " + Subject + " \r\n" +
"Message-ID: mID_" + messageID + "\r\n" +
"References: "+encryptMessageID + "\r\n" +
"In-Reply-To: " + encryptMessageID + "\r\n" +
"Content-Type: " + contentType + "; charset=us-ascii\r\n\r\n" + Body;
dynamic objSendMsg = new raw = commonFunction.Base64UrlEncode(msg) ;
if (!string.IsNullOrEmpty(messageThreadID))
objSendMsg = new raw = commonFunction.Base64UrlEncode(msg), threadId = messageThreadID ;
var _objSendMsg = JsonConvert.SerializeObject(objSendMsg);
var strSendMsg = new StringContent(_objSendMsg, UnicodeEncoding.UTF8, "application/json");
当我在正文中应用相同的内容时,撇号适用于正文
请查看附件截图
Email copy
【问题讨论】:
【参考方案1】:您需要对主题标头进行base64_encode,然后将其作为纯文本发送。 API 变得混乱。
Subject: " + Convert.ToBase64String(Subject) + " \r\n" +
【讨论】:
不适合我显示如下 V2U/bGwgbWFrZSAxMDAsODAwIGNvbGQgY2FsbHMgZm9yIHlvdQ== 的主题 @DalmTo 你有什么解决办法 试试 Base64UrlEncode。您对主体进行编码,您也需要对主题进行编码。以上是关于通过 gmail api 发送电子邮件时在电子邮件主题中使用撇号创建问题的主要内容,如果未能解决你的问题,请参考以下文章
通过 Gmail REST API 发送的电子邮件/草稿无法在新的 Gmail 用户界面中打开
通过 Gmail API 发送电子邮件时应用 MSO 条件语句
如何通过 gmail-api for python 发送 HTML 格式的电子邮件