2015-06-15 1 views
1

У меня есть адрес электронной почты с символом Юникода. Это не исключение. Я использую конструктор .Net Mail Address overloaded. MSDN заявляет, что он выкинет FormatException, когда адрес содержит символы, отличные от ASCII. Но я не могу воспроизвести исключение.Юникод-символ в электронной почте не исключение исключения

var addr = new System.Net.Mail.MailAddress("ñ@c.com","test", Encoding.UTF8); 

Если это признанный адрес электронной почты, то я ищу символ, который будет генерировать исключение для модульного теста.

+4

Каждый символ является символом UNICODE. Где он скажет, что это вызовет исключение? В документации говорится, что это будет означать, что если «нет в распознанном формате», ничего не упоминается о символах https://msdn.microsoft.com/en-us/library/591bk9e8%28v=vs.110%29.aspx –

+0

В этой версии документации о перегрузке говорится, что она будет генерировать исключение. https://msdn.microsoft.com/en-us/library/f52hswkf(v=vs.110).aspx. В основном мне нужен адрес электронной почты для модульного теста, если сбой электронной почты для символов Unicode или нет. – TBAG

+0

Вы пробовали с некоторыми китайскими персонажами? «Не-ASCII» на самом деле может быть «не-латинским1» и - здесь вполне приемлемо. –

ответ

2

Документация, как представляется, устарела. Символы Unicode поддерживаются с .NET 4.0 на почтовых адресах, см. Следующую статью в блоге: http://blogs.msdn.com/b/ncl/archive/2009/08/06/what-s-new-in-system-net-mail.aspx

+0

Это только упоминание * отображаемого имени *, а не * адрес * допускается с различными кодировками. –

2

Исходный код довольно прост по этому вопросу - проверка символов юникода отсутствует.

Это означает, что документация устарела - довольно долгое время поддерживались имена доменов unicode. Единственное, что осталось от старых проверок, применяется только тогда, когда SMTP-сервер, который вы используете для отправки электронной почты , не поддерживает.

Другими словами, не проверяйте содержание юникода в адресах электронной почты как ошибку - это не недействителен.

Смежные вопросы