Dans l'extrait de code ci-dessous, je reçois une formatException sur 'This.Recipients'. Plus spécifiquement, le message est "Un caractère non valide a été trouvé dans l'en-tête de courrier:"; "".
Les destinataires sont une chaîne de trois adresses électroniques séparées par des points-virgules (le ";" caractère "; La liste des destinataires est lue à partir d'une application APP.Config et les données le font dans la variable des destinataires. P>
Comment puis-je obtenir cette erreur lorsque plusieurs destinataires doivent être séparés par un point-virgule? Aucune suggestion? Comme toujours, merci pour votre aide! P> edit # 1 - Ce dit utiliser un point-virgule. P> P>
5 Réponses :
Je ne peux rien voir dans le Documentation du constructeur MailMessage à Suggérez que vous pouvez spécifier plusieurs destinataires comme ça. Je vous suggère de créer l'objet MailMessage code>, puis ajoutez chaque adresse e-mail séparément. P>
Dang interwebs ... ne peut pas croire tout ce que vous lisez. J'ai trouvé quelques endroits où il a dit que vous pouviez utiliser des demi-couches. J'ai remplacé les points-virgules avec des virgules et cela résolva la question. Merci, Jon!
+1. Cela prend des virgules, pas des semi-couches. Trop de mauvaises perspectives nous ont eu l'habitude d'utiliser des semi-couches :)
Vous ne pouvez même pas faire confiance à MSDN. Celui-ci dit d'utiliser des points-virgules aussi. msdn.microsoft. COM / EN-US / Bibliothèque / ...
J'ai cette erreur sur l'instanciation ou la variable, comme ceci: var msg = nouvelle mailmessage (); Des pensées?
C'était la même erreur pour le caractère invalide "@". Pour une raison inconnue, la chaîne sur le segment System.net/mail du web.config n'a pas été codée sur UTF-8. Je l'ai supprimé et je l'ai repéré au lieu de copier / coller d'un projet précédent et cela a fonctionné bien :)
Vous devez utiliser la méthode .Ajouter pour ajouter ces adresses. Voici quelques échantillons de code que j'utilise:
Essayez ceci
Comment est-ce différent de la réponse de Biggstrc?
var mailMessage = new MailMessage(); mailMessage.To.Add(FormatMultipleEmailAddresses("test@gmail.com;john@rediff.com,prashant@mail.com"));
Ceci nécessite une modification: le rejoindre code> nécessite
"," code> comme séparateur, sinon une formatexception est toujours lancée:
string.join (",", adresses) Code> Travaux
REVIVIVIVIVER Ceci des morts, si vous séparez les adresses électroniques du destinataire par une virgule this.Recipients = "email1@test.com, email2@test.com";
var mailMsg = new MailMessage(this.Sender, this.Recipients, this.Subject, this.Message);
SmtpClient smtpServer = new SmtpClient(SMTP);
smtpServer.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpServer.Send(mailMsg);