首页 > 解决方案 > 使用 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); 时。我不知道为什么它会在这之后改变。

我需要有人帮助我。在此先感谢。

标签: sendgridsmtpclientmailkitmimekit

解决方案


推荐阅读