wake-up-neo.net

Mehrere Adresse im MailAddress-Konstruktor

ich habe versucht, mehrere Adressen wie diese hinzuzufügen.

MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");

aber wirft Fehler wie 

An invalid character was found in the mail header: ';'
22
Vetrivel mp

Sie können den MailAddress-Konstruktor nicht zum Angeben mehrerer Quittungen verwenden, Sie können jedoch das MailMessage-Objekt wie unten gezeigt verwenden.

Verwenden des Konstruktors MailMessage ( not MailAddress):

var msg = new MailMessage("[email protected]", "[email protected], [email protected]");

ein anderer Weg ist:

MailMessage mail = new MailMessage();
mail.To.Add("[email protected],[email protected],[email protected]");

ein anderer Weg ist:

MailMessage msg = new MailMessage();
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
35

Semikolon ist eigentlich kein gültiges Trennzeichen. Leider dokumentiert MSDN dies nicht, ich musste es selbst herausfinden. 

Wenn Sie weitere Adressen hinzufügen möchten, teilen Sie sie durch Kommas. Das Leerzeichen teilt den Anzeigenamen und die E-Mail-Adresse auf. Die Eigenschaft "To" akzeptiert folgende Formate:

usw...

Ich habe mehr über dieses Thema geschrieben in diesem Blogbeitrag

19
Tschareck

Es könnte eine Frage sein, warum Sie das tun wollen. So etwas wie MailMessage.To ist eine MailAddressCollection, deren Add-Methode überlastet ist, um mehrere E-Mail-Adressen in einem String zu trennen, die durch ein Komma getrennt sind (siehe http://msdn.Microsoft.com/de-de/library/ms144695.aspx ).

Normalerweise werden MailAddress-Objekte verwendet, um sie zu E-Mails hinzuzufügen. Wenn Sie mehrere Adressen haben, gehe ich davon aus, dass Sie sie zu einem der Felder An, CC usw. hinzufügen möchten. In diesem Fall sollten Sie mit dem Hinzufügen der Überladung gut arbeiten. Wenn es etwas anderes gibt, müssen Sie mehr Kontext für das, was Sie tun möchten, bereitstellen.

2
Chris

Verwenden Sie ein Komma (,) als Trennzeichen anstelle von Semikolon (;).

Wenn mehrere E-Mail-Adressen, die mit einem Semikolon (";") getrennt sind, im Adressparameter übergeben werden. Eine FormatException-Ausnahme wird ausgelöst.

Beispiele, die funktionieren

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"));
  ...
}
2
JohnB

Hier ist eine weitere Variation zu diesem Thema, FWIW:

    SenderEmail = "[email protected]";
    RecipientEmail = "[email protected], [email protected], [email protected]";
    MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);

Beachten Sie die Kommas. Weitere Details finden Sie unter MSDN hier .

1
Guest

@Tschareck

"Ein Komma wird verwendet, um Elemente in einer Liste von E-Mail-Adressen zu trennen. Daher sollte ein Komma nicht in Anführungszeichen ohne Anführungszeichen in einer Liste verwendet werden. Die folgenden E-Mail-Adressen sind zulässig" in http: // msdn. Microsoft.com/en-us/library/system.net.mail.mailaddress.aspx

Viele Grüße, Anarud

0
Anarud