sendgrid - 使用 MailKit 的 Smtpclient 发送,subjectEncoding 在收到邮件的来源很奇怪。
问题描述
我试图将它们正确编码为 iso-2022-jp,但唯一的主题有点出乎意料。这是结果。
From: =?iso-2022-jp?B?GyRCJ**************==?= <sender@example.com>
To: =?iso-2022-jp?B?GyRCS****************==?= <receiver@example.com>
Subject: =?iso-2022-jp?b?GyRCQmpMPhsoQjobJEIlRiU5JUgbKEI=?=
正如您在上面看到的,小写“b”仅在主题中可见,即使我以相同的方式对其他内容进行了编码。我发现它在方法 smtp.Send(msg); 之后自动转换为 b b不常见。我需要将其修复为B。
下面就像我试图做的一样。
using (var smtp = new SmtpClient())
{
//Connection
.
.
.
//Set from,to,subject,body...
.
.
msg.Subject = EncodeMailHeader("題名:テスト");
.
.
smtp.Send(msg);
}
// Convert to "=?iso-2022-jp?B?<encodedstring>?="
private static string EncodeMailHeader(string val)
{
Encoding enc = Encoding.GetEncoding(JIS_Code);
string strBase64 = Convert.ToBase64String(enc.GetBytes(val));
return string.Format("=?{0}?B?{1}?=", enc.HeaderName, strBase64);
}
“msg”的主题属性是“=?iso-2022-jp?B?GyRCQmpMPhsoQjobJEIlRiU5JUgbKEI=?= 在调试 smtp.Send(msg); 时。我不知道为什么它会在这之后改变。
我需要有人帮助我。在此先感谢。
解决方案
推荐阅读
- javascript - await 仅在异步函数中有效 - nodejs
- ruby - 在本地计算机上运行 Cucumber 测试时抑制 Selenium 警告
- php - 在测试中实例化之前设置静态方法模拟
- c# - When I minus a “double” and a another “double” from an arrary, "class member declaration expected"
- spring - Spring Boot @Controller 在 Tomcat 独立部署时不起作用
- vue.js - Way to prevent momentary "no Image Available" in vue
- algorithm - Is it better to use genetic algorithm to solve the 0-1 Knapsack problem?
- haskell - 一个 Haskell 函数,它接收不同类型的 List,只返回一个 Integer List
- c# - UITableViewCell not being rendered correctly
- python - 如何计算两个指数数之差