使用Mimekit发送到包含特殊字符的电子邮件地址

时间:2017-03-31 10:45:00

标签: c# utf-8 smtpclient mailkit mimekit

我正在尝试向电子邮件地址发送电子邮件:coordinación@test.xxxxx.com,其中包含使用Mailkit通过启用了 SMTPUTF8 扩展名的邮件服务器的特殊字符(已仔细检查过通过从shell脚本发送示例测试电子邮件)。

Mailkit将异常报告为“SMTP服务器不支持SMTPUTF8扩展”,我是否应该采用不同的方式对电子邮件地址进行编码?

我尝试过对邮箱地址构造函数使用UTF-8编码,但结果是一样的。请找到相同的协议日志。

Connected to smtp://mail5xx.xx.xxxxx.com:25/?starttls=when-available
S: 220 mail5xx.xx.xxxxx.com ESMTP service ready
C: EHLO [192.xxx.xx.xxx]
S: 250-mail5xx.xx.xxxxx.com says hello
S: 250-ENHANCEDSTATUSCODES
S: 250-PIPELINING
S: 250-CHUNKING
S: 250-8BITMIME
S: 250-AUTH CRAM-MD5 PLAIN LOGIN
S: 250-AUTH=CRAM-MD5 PLAIN LOGIN
S: 250-XACK
S: 250-SIZE 0
S: 250-VERP
S: 250 DSN

编辑: 如果我使用Mailkit 1.1.4(感谢Jeff快速补丁),这对我来说不再是问题,显然有些邮件服务器可以发送UTF邮件,即使他们没有启用SMTPUTF8扩展,这很奇怪。

1 个答案:

答案 0 :(得分:1)

根据服务器对EHLO命令的响应,它支持SMTPUTF8扩展名。

请注意,如果 支持它,那么它将在响应中列出如下:

C: EHLO [192.xxx.xx.xxx]
S: 250-mail5xx.xx.xxxxx.com says hello
S: 250-ENHANCEDSTATUSCODES
S: 250-PIPELINING
S: 250-CHUNKING
S: 250-8BITMIME
S: 250-AUTH CRAM-MD5 PLAIN LOGIN
S: 250-AUTH=CRAM-MD5 PLAIN LOGIN
S: 250-XACK
S: 250-SIZE 0
S: 250-VERP
S: 250-DSN
S: 250 SMTPUTF8