2010-12-16 4 views
8

に「N」に失敗したのを除い「無効な文字がメールヘッダで見つかりました。: 『N』」:スローネットMailAddressは、次のコードのメールアドレス

string email = "ñ@c.com"; 
MailAddress to = new MailAddress(email); 

私は「実際のアドレスこれを実行しているmは有効なアドレスですが、MailAddressクラスは試して使用するたびにエラーをスローします。

+0

うーん... [Ideone](http://ideone.com/TMd9s)上で再現することはできません。例外はスローされません – Cameron

+1

@Cameron:コンパイルされ、実行されません(実行時例外をスローします)。 –

+0

@ Noon:Ideoneによると、それはまた正常に実行されています – Cameron

答えて

5

うん、面白いです。 Wikipedia:Email Addressによれば、厳密にはASCIIのサブセットであると定義されているため、技術的に無効です。

だから、あなただけで厳密に(とにかく、System.Net.Mailクラスを使用して).NETからそのアドレスに電子メールを送信することはできませんようです。

+0

はい。 [RFC 5322セクション3.2.3と3.2.4](http://tools.ietf.org/html/rfc5322#section-3.2.3)は、それぞれ原子と引用符で囲まれた文字列の許容文字を標準化し、両方ともUS-ASCIIのサブセットとして指定されています。 –

+0

近い将来、Unicodeに拡張されるように見えますが、今のところASCIIのようです。ありがとう! – Dugan

+0

.NET 4.0の時点では、アドレスにñが許可されているように見えます(他の誰かがこの問題を抱えている場合)。 –