2010-06-09 8 views
3

En écrivant ceci:Comment utiliser avec adresses e-mail les caractères spéciaux, tels que Ø

var recipient = new MailAddress("[email protected]ø.dk"); 

Notez que le « ø » dans la partie de domaine.

je reçois une exception indiquant:

System.FormatException: La chaîne spécifiée est pas dans la forme requise pour une adresse e-mail. à System.Net.Mime.MailBnfHelper.ReadMailAddress (données de chaînes de caractères, Int32 & offset, cordes & ) Sélectionnez à System.Net.Mail.MailAddress.ParseValue (adresse de chaîne) à System.Net.Mail.MailAddress..ctor (adresse String, String displayName Encoding displayNameEncoding) à System.Net.Mail.MailAddress..ctor (String adresse)

L'adresse utilisée doit être parfaitement valide.

Donc je devine que je dois encoder l'adresse en quelque sorte?

Répondre

6

La RFC-822 stipule que chaque partie de ce domaine doit être entièrement formée de caractères ASCII, à l'exclusion des espaces et des caractères de contrôle. Votre adresse e-mail n'est pas valide selon cette norme. Ce que cela signifie pour un nom de domaine internationalisé, c'est que vous obtiendrez seulement une adresse e-mail compatible RFC-822 en utilisant le formulaire ASCII de ce nom de domaine.

+0

Si je vous ai bien compris, les courriels utilisant IDN pour le nom de domaine doivent être en punycode afin d'être conformes à la norme rfc-822? – Calyth

+0

Je pense que c'est à peu près ce que j'ai dit, oui. Ne tirez pas sur le messager ...;) –

+0

Je ne vais pas :) Cela m'a sauvé beaucoup d'ennuis: D – Calyth

3

Vous devez probablement utiliser la variante codée du nom d'hôte. Voir here, Exemple de codage IDNA

0

RFC 1034 décrit les noms de domaine

Les étiquettes doivent suivre les règles pour les noms d'hôte ARPANET. Ils doivent commencer par une lettre, se terminer par une lettre ou un chiffre, et avoir comme caractères intérieurs seulement des lettres, des chiffres et des tirets. Il y a aussi quelques restrictions sur la longueur de . Les étiquettes doivent comporter 63 caractères ou moins.

Questions connexes