【问题标题】:Using apostrophe in email subject while sent email via gmail api creating an issue通过 gmail api 发送电子邮件时在电子邮件主题中使用撇号创建问题
【发布时间】: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

【问题讨论】:

    标签: c# email gmail gmail-api google-developers-console


    【解决方案1】:

    您需要对主题标头进行base64_encode,然后将其作为纯文本发送。 API 变得混乱。

    Subject: " +  Convert.ToBase64String(Subject) + " \r\n" +
    

    【讨论】:

    • 不适合我显示如下 V2U/bGwgbWFrZSAxMDAsODAwIGNvbGQgY2FsbHMgZm9yIHlvdQ== 的主题
    • @DalmTo 你有什么解决办法
    • 试试 Base64UrlEncode。您对主体进行编码,您也需要对主题进行编码。
    猜你喜欢
    • 1970-01-01
    • 2012-11-08
    • 2017-10-03
    • 2011-10-28
    • 2012-03-22
    • 2019-01-24
    • 2012-01-07
    • 2023-03-19
    相关资源
    最近更新 更多