Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema el enviar muchos mail's con ASP.NET

Estas en el tema de Problema el enviar muchos mail's con ASP.NET en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/12/2002, 14:11
Avatar de misitioweb  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, N.L.
Mensajes: 99
Antigüedad: 22 años, 4 meses
Puntos: 1
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?

  #2 (permalink)  
Antiguo 13/12/2002, 18:10
Avatar de misitioweb  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, N.L.
Mensajes: 99
Antigüedad: 22 años, 4 meses
Puntos: 1
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.....

  #3 (permalink)  
Antiguo 14/12/2002, 11:23
Avatar de Henry Zapata  
Fecha de Ingreso: abril-2001
Mensajes: 125
Antigüedad: 23 años, 1 mes
Puntos: 0
Hola:

Porque no intentas usando programacion asincrona ?
.Net te da esa posibilidad para situaciones como las
tuyas, cuestion de averiguar un poco
  #4 (permalink)  
Antiguo 16/12/2002, 00:06
 
Fecha de Ingreso: mayo-2002
Ubicación: Guatemala
Mensajes: 160
Antigüedad: 22 años
Puntos: 1
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.
__________________
José Luis Chávez del Cid
Systems Developer Specialist
ACS Inc./Xerox
Guatemala
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:08.