Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Problema el enviar muchos mail's con ASP.NET (http://www.forosdelweb.com/f29/problema-enviar-muchos-mails-con-asp-net-107000/)

misitioweb 12/12/2002 14:11

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:

misitioweb 13/12/2002 18:10

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.....

:-) :-) :-) :-)

Henry Zapata 14/12/2002 11:23

Hola:

Porque no intentas usando programacion asincrona ?
.Net te da esa posibilidad para situaciones como las
tuyas, cuestion de averiguar un poco

jlchavez 16/12/2002 00:06

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.