En utilisant les classes SmtpClient
, MailMessage
et MailAddress
, je ne peux pas envoyer des adresses électroniques telles que å[email protected] Je reçois les erreurs/exceptions comme indiqué ci-dessous:Impossible d'envoyer des e-mails à des adresses avec des caractères scandinaves
Un caractère non valide a été trouvé dans l'en-tête du message: 'å'.
--------------------------- Erreur lors de l'envoi de l'e-mail --------------- ------------ System.Net.Mail.SmtpException: Le client ou le serveur est uniquement configuré pour les adresses de messagerie avec les parties locales ASCII : å[email protected]
à System.Net.Mail.MailAddress.GetUser (Boolean allowUnicode)
à System.Net.Mail.MailAddress.GetAddress (Boolean allowUnicode)
à System.Net.Mail.MailAddress.Encode (Int32 charsConsumed, Boolean allowUnicode)
à System.Net.Mail.MailAddressCollection.Encode (Int32 charsConsumed, Boolean allowUnicode) à System.Net.Mail.Message.PrepareHeaders (Boolean sendEnvelope, booléenne allowUnicode) à System.Net.Mail.Message.Send (écrivain BaseWriter, Boolean sendEnvelope, Boolean allowUnicode) à System.Net.Mail.SmtpClient.Send (message MailMessage)
Ces caractères dans mon sujet/corps vont bien, mais pas dans les adresses e-mail.
J'ai essayé d'installer SmtpClient.DeliveryMethod = SmtpDeliveryFormat.International
, ou MailMessage.HeadersEncoding = Encoding.Unicode
(ou UTF8
) et il ne semble pas changer quoi que ce soit. Ce sont de vraies adresses e-mail des personnes avec lesquelles nous devons communiquer, donc c'est un peu un problème.
J'ai creusé à travers le code source .Net mais pas vraiment obtenu n'importe où. J'ai repéré une propriété ServerSupportsEai
, et Google me dit EAI signifie Email Address Internationalization (https://tools.ietf.org/html/rfc5336) mais il est assez difficile de savoir si c'est une limitation dans mon code, ou si le serveur spécifique à qui je parle ne supporte pas cela. .. puisque j'utilise un serveur de test pour éviter d'envoyer des emails à des suédois sans méfiance!
Est-ce que quelqu'un peut m'aider à éclaircir cela? Est-ce que .Net le supporte? Si oui, que faire de mon code client pour l'activer?
Je pense que le problème n'est peut-être pas dans le code .NET, mais dans la configuration de votre serveur de messagerie. Pouvez-vous essayer d'utiliser un autre serveur? – Pikoh
(5336 est remplacé par 6531/2) Cette fonctionnalité nécessite le serveur SMTP pour soutenir SMTPUTF8, essayez avec Gmail qui fait, si cela fonctionne votre serveur c'est le problème. –
Merci. Après avoir lutté avec gmail "votre application n'utilise pas la sécurité à jour et a été bloquée" Je suis en train de tester ceci - bien que je ne puisse toujours pas envoyer à une personne très poliment –