具有法国口音的C#SmtpClient主题

时间:2017-06-05 20:42:32

标签: c# email non-ascii-characters

我正在尝试为我的应用发送电子邮件,我的电子邮件主题中有“è”和“é”字符需要发送(重要的是带有重音)

我的身份验证电子邮件正在运行“Bière - Vérificationduemail”,我在我的展望中收到了它。

现在当我发送我的忘记密码电子邮件“Bière - Changement de mot de passe”时,我收到了Bi ?? re - Changement de mot de passe“

我找到了那些编码我的字符串的行,但它没有做任何事情,我得到了相同的显示错误。

    private static string GetIsoString(string str)
    {
        byte[] isobytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(str);
        byte[] ubytes = Encoding.Convert(Encoding.GetEncoding("ISO-8859-1"), Encoding.Unicode, isobytes);
        return Encoding.Unicode.GetString(ubytes, 0, ubytes.Length);
    }

我的MailMessage:

    return new MailMessage(_from, to)
    {
        Subject = subject,
        Body = body,
        // Tried Encoding.Unicode, UT8, UTF32
        SubjectEncoding = Encoding.GetEncoding("ISO-8859-1"), 
        IsBodyHtml = true
    };

我如何发送带有重音的主题而不将其转换为??

修改

// this is my solution... i don't really understand why does it make it work... but tested few times and now i get my accent all the time!
HeadersEncoding = Encoding.UTF8,

0 个答案:

没有答案