SMTP中的Unicode:没有任何理由?

时间:2011-11-11 13:56:17

标签: .net email unicode encoding smtp

我想将Unicode字符添加到通过SMTP发送的纯文本电子邮件中。我们的实现基于.NET的System.Net.Mail,这使得以这种方式指定Unicode编码变得容易:

message.BodyEncoding =  System.Text.Encoding.UTF8;

即使对于英语,切换到Unicode也允许我在电子邮件文本中包含项目符号(Unicode代码点U + 2022 =•)。备用HTML电子邮件正文允许将<ul>元素用于项目符号列表,但对于纯文本电子邮件,我想要的解决方案不如使用星号或短划线用于项目符号那么难看。

在SMTP中使用Unicode编码是否有缺点?我是否应该担心由于此编码而某些收件人将无法接收或阅读该电子邮件?

2 个答案:

答案 0 :(得分:1)

我不知道现在任何不支持Unicode的邮件客户端。无论如何,一个简短的测试将是更可取的(至少,问你的客户他们使用哪个邮件客户端)。增加邮件大小的缺点不计算在内,除非您有异常庞大的邮件。

(旁注:我习惯于在纯文本邮件中使用星号,它们真的太丑了吗?)

答案 1 :(得分:1)

我相信这个问题有几个层次。

首先,原始SMTP协议不处理UTF-8。但是,有广泛部署的扩展可以添加该支持,只要您的代码使用正确的魔法,它就不应该成为问题。你提到的实现可能已经足够了。

其次,如果你的UTF-8消息完好无损地存在于收件人的SMTP中,那么他们的邮件客户端是否正确处理UTF-8就存在问题。我相信,基本支持已得到广泛部署,但一些老客户可能会遇到问题。如果您使用外来字符,可能会出现问题,因为收件人可能没有正确的字体。但是,任何处理HTML电子邮件的客户端都可能会处理UTF-8。

如果您知道可能的收件人,我建议您使用他们的设置进行测试。