j'essayais d'ajouter plusieurs adresses comme ceci.
MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");
mais jette l'erreur comme
An invalid character was found in the mail header: ';'
Vous ne pouvez pas utiliser le constructeur MailAddress
pour spécifier plusieurs reçus, mais vous pouvez utiliser l'objet MailMessage
comme indiqué ci-dessous.
Utilisation du constructeur MailMessage
( not MailAddress
):
var msg = new MailMessage("[email protected]", "[email protected], [email protected]");
une autre façon est:
MailMessage mail = new MailMessage();
mail.To.Add("[email protected],[email protected],[email protected]");
une autre façon est:
MailMessage msg = new MailMessage();
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
En réalité, le point-virgule n'est pas un délimiteur valide. Malheureusement, MSDN ne documente pas cela, je devais le découvrir moi-même.
Si vous souhaitez ajouter d'autres adresses, divisez-les par une virgule. Et l’espace divisera le nom d’affichage et l’adresse électronique. La propriété "To" accepte les formats suivants:
etc...
J'ai écrit plus sur ce sujet dans ce blog
Il pourrait y avoir une question de pourquoi vous voulez faire cela? Quelque chose comme MailMessage.To
est une MailAddressCollection
dont la méthode Add
est surchargée pour prendre plusieurs adresses de messagerie dans une chaîne, séparées par une virgule (voir http://msdn.Microsoft.com/en-us/library/ms144695.aspx ).
L’utilisation habituelle des objets MailAddress consiste à les ajouter à des courriers électroniques. Si vous avez plusieurs adresses, je suppose que vous souhaitez les ajouter à l’un des champs À, CC, etc., auquel cas la surcharge Ajouter vous convient parfaitement. S'il y a autre chose, vous devrez fournir plus de contexte à ce que vous essayez de faire.
Utilisez une virgule (,) comme séparateur à la place du point-virgule (;).
Si plusieurs adresses de messagerie séparées par un point-virgule (";") sont passées dans le paramètre address. une exception FormatException est déclenchée.
_ {Des exemples qui fonctionnent
MailAddressCollection.Add (String):
using (MailMessage msg = new MailMessage())
{
...
msg.To.Add("[email protected], [email protected]");
...
}
MailAddressCollection.Add (MailAddress):
using (MailMessage msg = new MailMessage())
{
...
msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp"));
msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp1"));
...
}
Voici une autre variante de ce thème, FWIW:
SenderEmail = "[email protected]";
RecipientEmail = "[email protected], [email protected], [email protected]";
MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);
Notez les virgules. Plus de détails peuvent être trouvés à MSDN ici .
@Tschareck
"Une virgule est utilisée pour séparer les éléments d'une liste d'adresses de messagerie. En conséquence, elle ne doit pas être utilisée dans les noms complets non cités de la liste. Les adresses de messagerie suivantes seraient autorisées" in http: // msdn. Microsoft.com/en-us/library/system.net.mail.mailaddress.aspx
Cordialement, Anarud