visual studio net form enviar electronico desde correo con asp archivo adjunto c# multithreading email

c# - studio - Enhebrado al enviar correos electrónicos



enviar email c# windows form (8)

Tengo una función simple que envía correos electrónicos, ¿cómo voy a utilizar los hilos para acelerar la entrega del correo electrónico?

El código de muestra sería ideal.



Crea tu clase con un método de vacío estático que hará que tu clase comience a hacer lo que quieras hacer en el hilo por separado con algo como:

using System; using System.Threading; class Test { static void Main() { Thread newThread = new Thread(new ThreadStart(Work.DoWork)); newThread.Start(); } } class Work { Work() {} public static void DoWork() {} }

Otra alternativa es usar la clase ThreadPool si no desea administrar sus hilos usted mismo.

Más información en Threads - http://msdn.microsoft.com/en-us/library/xx3ezzs2.aspx

Más información en ThreadPool - http://msdn.microsoft.com/en-us/library/3dasc8as(VS.80).aspx


Cuando envíe correos electrónicos usando múltiples hilos, tenga cuidado de que su ISP lo identifique como correo no deseado. Será mejor optar por lotes más pequeños con cierto retraso entre cada lote.


Puede ejecutar la función en otro hilo. Al ser SendMail su función de envío de correo usted puede:

ThreadPool.QueueUserWorkItem(delegate { SendMail(message); });


Sin embargo, tener un hilo separado no acelerará la entrega del correo electrónico. Todo lo que hará es devolver el control al método de llamada más rápido. Así que a menos que necesites hacer eso, ni siquiera me molestaría con eso.


Use SendAsync isntead.


Ya sabes lo que sería más agradable y más fácil es crear una aplicación back-end y enviar correos electrónicos cada 30 minutos. Inserte la información en una base de datos que debe enviar desde y hacia allí, cree un grupo de aplicaciones que se inicie cada 30 minutos. Cuando se inicia, puede enviar un correo electrónico. No es necesario esperar a que el controlador de eventos envíe el correo electrónico ...

Funciona para nosotros Solo pensé que sería útil para ti.


EN 4.0 puede usar lo siguiente,

new Thread(x => SendMail(message)).Start();

y

public static void SendEmail(MailMessage message) { using (SmtpClient client = new SmtpClient("smtp.XXXXXX.com")) { client.Send(message); } }