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).

Другие вопросы по тегам