11
votes

Comment réparer une exception projetée lors de l'envoi de messagerie à plusieurs destinataires?

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.

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! xxx

edit # 1 - Ce dit utiliser un point-virgule.


0 commentaires

5 Réponses :


14
votes

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 , puis ajoutez chaque adresse e-mail séparément.

Notez que le mailaddressculcollection.add < / a> La méthode est documentée pour accepter les les adresses de virgule -séparated ... donc c'est possible que cela fonctionnerait aussi dans le constructeur.


5 commentaires

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 :)



5
votes

Vous devez utiliser la méthode .Ajouter pour ajouter ces adresses. Voici quelques échantillons de code que j'utilise: xxx


0 commentaires

0
votes

Essayez ceci xxx


1 commentaires

Comment est-ce différent de la réponse de Biggstrc?



0
votes
var mailMessage = new MailMessage();
mailMessage.To.Add(FormatMultipleEmailAddresses("test@gmail.com;john@rediff.com,prashant@mail.com"));

1 commentaires

Ceci nécessite une modification: le rejoindre nécessite "," comme séparateur, sinon une formatexception est toujours lancée: string.join (",", adresses) Travaux



2
votes

REVIVIVIVIVER Ceci des morts, si vous séparez les adresses électroniques du destinataire par une virgule forte>, elle fonctionnera.

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);


0 commentaires