Necesito enviar muchos correos electrónicos (probablemente cientos al día) según la programación. La forma en que pienso hacerlo es la siguiente, pero el problema es que mi campo de Cuerpo puede ser muy grande, y si lo agrego como cuerda, se pone feo.La forma correcta de enviar correos electrónicos desde el servicio de Windows
SmtpClient client = new SmtpClient(); //host and port picked from web.config
client.EnableSsl = true;
MailMessage message = new MailMessage();
message.Body = "test from winservice"; // HERE IS MY PROBLEM
message.IsBodyHtml = true;
message.From = new MailAddress("[email protected]");
message.Subject = "My subject";
message.To.Add(new MailAddress("[email protected]"));
try
{
client.Send(message);
}
catch (Exception)
{
}
cuando tenía que hacerlo desde la página aspx i utilizado
MailDefinition message = new MailDefinition();
message.BodyFileName = @"~\EmailTemplate\Template1.htm";
ListDictionary replacements = new ListDictionary();
replacements.Add("<% Name %>", this.txtName.Text);
replacements.Add("<% PhoneOrEmail %>", this.txtPhoneOrEmail.Text);
replacements.Add("<% Message %>", this.txtMessage.Text);
MailMessage msgHtml = message.CreateMailMessage(RECIPIENTS, replacements, new LiteralControl());
creo que es una solución elegante, pero yo no quiero hacer referencia a System.Web.UI.WebControls.MailDefinition porque estoy en winservice
Mis preguntas son:
- ¿Cuál es la mejor manera de enviar mensajes de correo electrónico a granel de winservice?
- ¿Es posible enviarlo desde la cuenta de gmail ? o me van a bloquear después de un tiempo?
gracias por cualquier ayuda.
creo que Gmail tiene un límite de 500 destinatarios en un período de 24 horas. Sin embargo, desalentaría el uso de GMail para el correo electrónico masivo; puede violar sus TOS. –
Gracias Ryan, Aquí hay una publicación que lo explica con más detalle http://www.labnol.org/internet/email/gmail-daily-limit-sending-bulk-email/2191/ Así que supongo que tendrá que dejar de usar Gmail para enviar correos electrónicos :( – UshaP