C#:使用密码中的特殊字符进行SMTP登录

时间:2014-12-11 13:45:24

标签: c# passwords smtp special-characters

我尝试通过SMTP发送电子邮件。在我的SMTP帐户中,我使用了一些特殊字符:“äöü”。

SmtpClient client = new SmtpClient(this.Host, this.Port);
client.Credentials = new NetworkCredential(this.Login, this.Password);
// setting message
client.Send(message);

我总是收到服务器的错误消息“需要验证”。

当我将密码更改为另一个没有特殊字符的密码时,一切正常。

如何将特殊字符传递给SMTP服务器?这适用于GMX,WEB,T-ONLINE,Googlemail等几个服务器......?

顺便说一句:我需要使用.Net 2.0!

感谢任何提示, 伴侣

1 个答案:

答案 0 :(得分:0)

根据所使用的身份验证机制,用于对字符串进行编码的字符集可能对您要进行身份验证的特定服务器是错误的。

某些服务器对PLAIN和LOGIN SASL机制使用非UTF-8字符集(即它们设置为使用区域的区域设置字符集)。不幸的是,客户无法知道什么是charset。

其他SASL机制如DIGEST-MD5允许客户端和服务器协商使用哪个charset(通常最终为UTF-8)。