C#: вход в SMTP со специальными символами в пароле
Я пытаюсь отправить письмо по 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 ответ
В зависимости от используемого механизма аутентификации кодировка, используемая для кодирования строки, может быть неправильной для конкретного сервера, с которым вы аутентифицируетесь.
Некоторые серверы используют не кодировку UTF-8 для механизмов PLAIN и LOGIN SASL (т. Е. Они настроены на использование кодировки локали региона). К сожалению, у клиента нет возможности узнать, что это за кодировка.
Другие механизмы SASL, такие как DIGEST-MD5, позволяют клиенту и серверу согласовывать, какая кодировка используется (и обычно заканчивается UTF-8).