![]() |
Problema el enviar muchos mail's con ASP.NET Mi problema es muy simple, tengo una lista de usuarios, a los cuales les quiero mandar un mail. Pero como el servidor se tarda un poco en esta tarea, me manda el error de que se termino el tiempo de espera. Bueno, esto lo podria solucionar aumentando este tiempo en la configuración, pero me gustaria poder hacer algo que me fuera mostrando el progreso de la tarea.... Alguna forma de que pudiera darme cuenta de que esta trabajando... se supone que las paginas asp se ejecutan y al terminar toda la ejecución envian la información al cliente. Yo me acuerdo que se podia cambiar esta forma, para que pudieran ir mandando la información no hasta que terminara, sino como la fuera teniendo.... alguno sabe de esto? :pensando: :pensando: :pensando: :pensando: :pensando: :pensando: :pensando: :pensando: |
Ya lo encontre !!!! :-) :-) :-) Ya encontre una forma de hacerlo.... Usando un Nuevo Tread.... es decir crear un nuevo proceso independiente, asi puedo realizar dos acciones al mismo tiempo. Entonces, en el nuevo proceso mando llamar a la rutina que se encarga de mandar los mail's y este es independiente del proceso actual. Cuando abro la pagina, esta me dice que todo salio bien, aunque todavia no termine de hacerlo. Para el usuario todo ya termino, pero el servidor sigue con el proceso. ya hice una prueba mandandome 700 mail's para ver si los mandaba todos no importando que se tardara mucho, y FUNCIONO !!! Creo que fue una buena solución, pues para el usuario fue rapido.... pero hay algunos inconvenientes..... :-) :-) :-) :-) |
Hola: Porque no intentas usando programacion asincrona ? .Net te da esa posibilidad para situaciones como las tuyas, cuestion de averiguar un poco |
No hay por que quebarse la cabeza. Instala el servicio de SMTP de windows, a este lo configuras para que sirva de relay, así a la misma maquina local le pones los correos en cola ya preparados, y acada N minutos que se conecte al servidor principal. Envias los correos con SmtpMail.SmtpServer="localhost" Casi de inmediato se enviaran todos los correos, y el servicio de SMTP se encargara de ir enviando los correos uno tras otro. Es bonita la interface web, pero con el mismo lenguaje podes hacer una interface Windows Forms o de consola. El namespace provee una clase que se llama Console. Console.Write(String.Format("Correo no. {0} enviado",contador))'; El compilador esta en: C:\Program Files\Microsoft.NET\FrameworkSDK\Bin\ La sintaxis es la siguiente: csc /out:mailer.exe /target:exe mailer.cs Aquí va un ejemplo de mailer.cs: using System; using System.Web.Mail; namespace eMailer { class Mailer { public static void Main(string[] args) { Console.Write("Enviador de mails\r\n-----------------\r\n"); SmtpMail.SmtpServer="localhost"; SmtpMail.Send("[email protected]", "[email protected]", "test", "testing..."); Console.WriteLine("Mail enviado"); } } } Aquí utilizas las mismas subrutinas de Smtp, base de datos que tengas en la página. |
| La zona horaria es GMT -6. Ahora son las 07:51. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.