c# - body - ¿Cómo enviar correo electrónico a múltiples destinatarios con MailMessage?
mailmessage c# body html (3)
Tengo varios destinatarios de correo electrónico almacenados en Sql Server. Cuando hago clic en enviar en la página web, debería enviar un correo electrónico a todos los destinatarios. He separado correos electrónicos usando '';''
A continuación se muestra el código del destinatario único.
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();
¡Fácil!
Solo divide la lista de direcciones entrantes en el ";" carácter, y añadirlos al mensaje de correo:
foreach (var address in addresses.Split(new [] {";"}, StringSplitOptions.RemoveEmptyEntries))
{
mailMessage.To.Add(address);
}
En este ejemplo, las addresses
contienen " [email protected];[email protected]
".
Como lo sugirió Adam Miller en los comentarios, agregaré otra solución.
El constructor MailMessage (String from, String to) acepta una lista de direcciones separadas por comas. Entonces, si ya tiene una lista separada por comas ('',''), el uso es tan simple como:
MailMessage Msg = new MailMessage(fromMail, addresses);
En este caso particular, podemos reemplazar el '';'' Para '','' y seguir haciendo uso del constructor.
MailMessage Msg = new MailMessage(fromMail, addresses.replace(";", ","));
Si prefieres esto o la respuesta aceptada, depende de ti. Podría decirse que el bucle hace que la intención sea más clara, pero esto es más corto y no es oscuro. Pero si ya tienes una lista separada por comas, creo que este es el camino a seguir.
He probado esto usando el siguiente script de powershell y usando (,) entre las direcciones. ¡Funcionó para mí!
$EmailFrom = "<[email protected]>";
$EmailPassword = "<password>";
$EmailTo = "<[email protected]>,<[email protected]>";
$SMTPServer = "<smtp.server.com>";
$SMTPPort = <port>;
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer,$SMTPPort);
$SMTPClient.EnableSsl = $true;
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($EmailFrom, $EmailPassword);
$Subject = "Notification from XYZ";
$Body = "this is a notification from XYZ Notifications..";
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body);