SmtpException: le client ou Le serveur est configuré pour les adresses e-mail avec l'ASCII local-pièces
La SmtpClient.Send() méthode est de lancer cette erreur quand j'essaie d'envoyer un courriel à une adresse contenant un caractère accentué (é):
Système.Net.Mail.SmtpException: le client ou Le serveur est configuré
pour les adresses e-mail avec l'ASCII local-parties: lé[email protected].
au Système.Net.Mail.MailAddress.GetAddress(Boolean allowUnicode)
au Système.Net.Mail.SmtpClient.ValidateUnicodeRequirement(MailMessage...)
au Système.Net.Mail.SmtpClient.Envoyer(MailMessage message)
La formulation du message me fait chose il y a peut être un paramètre que je peux activer pour faire ce travail, mais je n'ai rien trouvé sur ce sujet.
J'ai essayé plusieurs serveurs SMTP, y compris Gmail. Voici les bits pour une repro:
Code
var msg = new MailMessage();
msg.Subject = "Test";
msg.From = new MailAddress("[email protected]");
msg.To.Add(new MailAddress("lé[email protected]"));
new SmtpClient().Send(msg);
app.config
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.gmail.com" port="587" userName="[email protected]" password="password" enableSsl="true" />
</smtp>
</mailSettings>
</system.net>
Le code est très simple, similaire à l'exemple sur la SmtpClient.Send() de la documentation et sinon fonctionne très bien.
OriginalL'auteur Xavier Poinas | 2012-11-06
Vous devez vous connecter pour publier un commentaire.
.net prend en charge uniquement les caractères ASCII. Je ne crois pas qu'il supporte les caractères ASCII étendus (qui comprend le e accentué en question).
http://www.asciitable.com/
Nous avons rencontré les mêmes problèmes avec les utilisateurs essayant d'utiliser les danois de caractère pour un /e.
cette réponse est incorrecte .NET t support non-ASCII et seront heureux de vous envoyer le mail tant que la passerelle SMTP répond avec SMTPUTF8 en réponse à la commande EHLO
Pouvez-vous nous fournir un lien / documentation pour montrer cela?
Vous avez besoin d'utiliser un réflecteur ou quelque chose d'inspecter la BCL. Regardez SmtpClient privé IsUnicodeSupported de la propriété.
Donc ce que vous dites est la chance de l'e-mail envoyé est basé sur le serveur de courrier électronique que vous envoyez et sa configuration. Ce n'est généralement pas une solution acceptable si ce n'est pas le paramètre par défaut sur la plupart des serveurs de messagerie.
OriginalL'auteur tsells
Si le DeliveryFormat propriété de votre SmtpClient instance est définie à
SmtpDeliveryFormat.SevenBit
(valeur par défaut), alors vous devez vous assurer que votre passerelle SMTP est de répondre avec SMTPUTF8 lorsqu'il est envoyé par ELHO .NET alors qu'il essaie d'envoyer l'e-mail. SmtpClient l'utilise pour travailler si la passerelle est en mesure de soutenir UTF8.Si le DeliveryFormat est
SmtpDeliveryFormat.International
, alors vous serez en mesure d'envoyer indépendamment.A fonctionné pour moi, merci!
De même pour moi, même si le emailClient option est définie à SmtpDeliveryFormat.International, il se plaint encore que "le client ou Le serveur est configuré pour les adresses E-mail avec l'ASCII local-pièces" ... c'est de l'envoyer par la Mandrill serveur SMTP.
Un autre mot pour vous dire que j'utilise sur d'autres installations de la même application, Mandrill, d'envoyer des e-mail avec les caractères Cyrilliques et qui n'a pas de problèmes.
quelle est la version de l' .NET framework/BCL utilisez-vous? Ce n'réflecteur dire sur les chemins de code nous l'avons mentionné ci-dessus? Les choses ont-elles changé?
OriginalL'auteur Andrew
Réponse tardive, mais j'ai résolu ce problème en spécifiant l'encodage comme ceci:
Dans mon cas, le serveur a été à l'origine de l'erreur.
OriginalL'auteur robasta