Ich habe mehrere E-Mail-Empfänger in SQL Server gespeichert. Wenn ich auf der Webseite auf Senden klicke, sollte eine E-Mail an alle Empfänger gesendet werden. Ich habe E-Mails mit getrennt ;
.
Es folgt der Code für einen einzelnen Empfänger.
MailMessage Msg = new MailMessage();
MailAddress fromMail = new MailAddress(fromEmail);
Msg.From = fromMail;
Msg.To.Add(new MailAddress(toEmail));
if (ccEmail != "" && bccEmail != "")
{
Msg.CC.Add(new MailAddress(ccEmail));
Msg.Bcc.Add(new MailAddress(bccEmail));
}
SmtpClient a = new SmtpClient("smtp server name");
a.Send(Msg);
sreader.Dispose();
c#
mailmessage
Chetan Goenka
quelle
quelle
MailMessage
und IhreSmtpClient
Instanzen inusing
Blöcken befinden.using
Blöcken sein" ist nicht gleich "muss entsorgt werden". Zweitens möchten Sie in Produktionscode wie Webanwendungen normalerweiseSendAsync
sowieso verwenden, was wie beabsichtigt funktioniert, ohne dass dieSnmpClient
Instanz entsorgt werden muss.Antworten:
Einfach!
Teilen Sie einfach die eingehende Adressliste auf das ";" Zeichen, und fügen Sie sie der E-Mail-Nachricht:
In diesem Beispiel
addresses
enthält "[email protected];[email protected]
".quelle
Wie von Adam Miller in den Kommentaren vorgeschlagen, werde ich eine weitere Lösung hinzufügen.
Der MailMessage-Konstruktor (String from, String to) akzeptiert eine durch Kommas getrennte Liste von Adressen. Wenn Sie also bereits eine durch Kommas (',') getrennte Liste haben, ist die Verwendung so einfach wie:
In diesem speziellen Fall können wir das ';' für ',' und verwenden Sie trotzdem den Konstruktor.
Ob Sie dies oder die akzeptierte Antwort bevorzugen, liegt bei Ihnen. Die Schleife macht die Absicht wohl klarer, aber dies ist kürzer und nicht dunkel. Aber sollten Sie bereits eine durch Kommas getrennte Liste haben, denke ich, ist dies der richtige Weg.
quelle
to
Parameter lediglich als "Eine Zeichenfolge, die die Adresse des Empfängers der E-Mail-Nachricht enthält". Ich möchte es verwenden, aber nicht, wenn seine Unterstützung entfernt werden kann.Laut Dokumentation:
MailMessage.To- Eigenschaft - Gibt MailAddressCollection zurück , die die Liste der Empfänger dieser E-Mail-Nachricht enthält
Hier hat MailAddressCollection eine eingebaute Methode namens
In deinem Fall :
Ersetzen Sie einfach alle; mit,
Als Referenz :
quelle
Ich habe dies mit dem folgenden Powershell-Skript und mit (,) zwischen den Adressen getestet. Es hat bei mir funktioniert!
quelle
C#
, die überhaupt nichts mit PowerShell zu.NET Framework
sondern nurC#
. Wenn alle das Gleiche tun würden wie Sie, hätten wir auch VB.NET-, F # - oder sogar C ++ - Antworten auf alle Fragen im Zusammenhang mit.NET Framework
. Immerhin ist es das gleiche Framework, es ist nur eine Frage der Übersetzung ... Sie sehen meinen Standpunkt hier? StackOverflow würde zu einer