vean varios varias que personas personalizado para masivos masivo los hago enviar destinatarios desde cómo correos correo como c# .net email

varios - No se puede enviar un correo electrónico a varias direcciones/destinatarios utilizando C#



enviar correo personalizado a varios destinatarios (6)

El problema es que está suministrando una lista de direcciones separadas por punto y coma al constructor de MailMessage cuando solo toma una cadena que representa una sola dirección:

Una cadena que contiene la dirección del destinatario del mensaje de correo electrónico.

o posiblemente una lista separada por comas (ver a continuación).

Source

Para especificar varias direcciones, debe usar la propiedad To que es MailAddressCollection , aunque los ejemplos en estas páginas no lo muestran muy claramente:

message.To.Add("[email protected], [email protected]"));

Las direcciones de correo electrónico para agregar a MailAddressCollection. Varias direcciones de correo electrónico deben separarse con un carácter de coma (",").

Página MSDN

por lo que la creación de MailMessage con una lista separada por comas debería funcionar.

Estoy utilizando el siguiente código, y solo envía un correo electrónico: tengo que enviar el correo electrónico a varias direcciones.

Para obtener más de un correo electrónico, uso:

string connectionString = ConfigurationManager.ConnectionStrings["email_data"].ConnectionString; OleDbConnection con100 = new OleDbConnection(connectionString); OleDbCommand cmd100 = new OleDbCommand("select top 3 emails from bulk_tbl", con100); OleDbDataAdapter da100 = new OleDbDataAdapter(cmd100); DataSet ds100 = new DataSet(); da100.Fill(ds100); for (int i = 0; i < ds100.Tables[0].Rows.Count; i++) //try { string all_emails = ds100.Tables[0].Rows[i][0].ToString(); { string allmail = all_emails + ";"; Session.Add("ad_emails",allmail); Response.Write(Session["ad_emails"]); send_mail(); } }

y para enviar el correo electrónico que uso:

string sendto = Session["ad_emails"].ToString(); MailMessage message = new MailMessage("[email protected]", sendto, "subject", "body"); SmtpClient emailClient = new SmtpClient("mail.smtp.com"); System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential("abc", "abc"); emailClient.UseDefaultCredentials = true; emailClient.Credentials = SMTPUserInfo; emailClient.Send(message);


Esta función valida una lista de direcciones de correo electrónico separadas por comas o punto y coma:

public static bool IsValidEmailString(string emailAddresses) { try { var addresses = emailAddresses.Split('','', '';'') .Where(a => !string.IsNullOrWhiteSpace(a)) .ToArray(); var reformattedAddresses = string.Join(",", addresses); var dummyMessage = new System.Net.Mail.MailMessage(); dummyMessage.To.Add(reformattedAddresses); return true; } catch { return false; } }


Este código que uso para enviar correos múltiples a, bcc y cc

MailMessage email = new MailMessage(); Attachment a = new Attachment(attach); email.From = new MailAddress(from);//De string[] Direcciones; char[] deliminadores = { '';'' }; //Seleccion de direcciones para el parametro to Direcciones = to.Split(deliminadores); foreach (string d in Direcciones) email.To.Add(new MailAddress(d));//Para //Seleccion de direcciones para el parametro CC Direcciones = CC.Split(deliminadores); foreach (string d in Direcciones) email.CC.Add(new MailAddress(d)); //Seleccion de direcciones para el parametro Bcc Direcciones = Bcc.Split(deliminadores); foreach (string d in Direcciones) enter code here`email.Bcc.Add(new MailAddress(d));


Esto es lo que funcionó para mí. (destinatarios es una matriz de cadenas)

//Fuse all Receivers var allRecipients = String.Join(",", recipients); //Create new mail var mail = new MailMessage(sender, allRecipients, subject, body); //Create new SmtpClient var smtpClient = new SmtpClient(hostname, port); //Try Sending The mail try { smtpClient.Send(mail); } catch (Exception ex) { Log.Error(String.Format("MailAppointment: Could Not Send Mail. Error = {0}",ex), this); return false; }


Para enviar a destinatarios múltiples configuré mi cadena de destinatario con una coma como mi separador.

string recipient = "[email protected],[email protected],[email protected]";

Luego, para agregar los destinatarios al objeto MailMessage :

string[] emailTo = recipient.Split('',''); for (int i = 0; i < emailTo.GetLength(0); i++) mailMessageObject.To.Add(emailTo[i]);