2010-03-08 22 views
5

Quiero programar el correo electrónico con asp.net y el código C#.horario Correo electrónico en asp.net, C#

¿cuál es la idea básica o el código para el correo electrónico programado?

+2

@Will, ¿Por qué no puedes programar que se envíe un correo electrónico en una fecha posterior? Es un requisito perfectamente legítimo: pueden enviar un correo electrónico a las 6 de la mañana desde su sitio, pero no quieren tener que presionar "Enviar" en ese momento. El correo electrónico se configuraría de antemano, se probaría, etc., y luego se programaría para que se enviara de manera que esté listo para los usuarios en los buzones de correo de manera oportuna. –

+0

@zaph, de acuerdo, asuma por un minuto que es lo que realmente preguntó (estaba dividido en mí mismo). Tienes que 1) escribir una aplicación que envíe correos electrónicos y luego 2) pasar esos correos electrónicos a la aplicación.Supongo que el impulso de mi comentario fue que no se puede programar mágicamente un correo electrónico. Sí, puede crear una aplicación que en una fecha posterior envíe un correo electrónico, pero debe escribirlo. Además, engaña todo el sitio. – Will

Respuesta

4

¿Utiliza un programador tal vez? Quartz.NET es bastante bueno.

Supongo que ya sabe cómo enviar un correo, así que solo programe un nuevo trabajo y continúe con él.

2

Intente simplemente escribir una aplicación de consola simple que envíe el correo electrónico y utilice el Programador de tareas de Windows para ejecutarlo cuando lo necesite. Enviar un correo electrónico es una tarea bastante estándar, como dijo Will, ya hay muchas preguntas similares aquí, pero si echa un vistazo al espacio de nombres System.Net.Mail, debería comenzar.

+0

No quiero iniciar mi computadora en todo momento. quiero establecer en mi servidor de alojamiento. me quedo en la India y el servidor en los Estados Unidos. No puedo instalar ningún software manual o aplicación de consola en su. Entonces, ¿qué debería hacer? – AjmeraInfo

+1

Si lo entiendo correctamente, ¿desea iniciar un correo electrónico en un servidor en el que no puede instalar ningún software? Creo que su única opción podría ser la opción de Albert de ejecutarlo desde un trabajo SQL. –

2

Puede tener una tabla de base de datos EmailSchedule (ID, SendTo, Asunto, MessageBody, SendDateTime) Cuando desee programar el envío de un correo electrónico, escriba en la tabla.

Entonces tener un proceso que se ejecuta cada x minutos y envía todos los correos electrónicos donde SendDateTime < = Ahora

Saludos

+0

Aunque ambas respuestas funcionarían hasta ahora, he encontrado en el pasado que configurar un trabajo en la base de datos que inicia este proceso es más fácil de configurar y configurar que las tareas programadas. –

0

usted podría tener una tabla en SQL llamada mailToBeSent o algo por el estilo ... y cada vez desea programar un correo electrónico, insertar un correo electrónico en esa tabla con todos los elementos de datos apropiados (asunto, a, cc, cuerpo, etc.) y, lo más importante, tener un campo para la fecha/hora que se enviará y ejecutar un trabajo SQL cada 5/10/15 minutos o lo que sea que elija, y verifique en esa tabla el correo que se debe enviar ... envíe el mensaje y elimine el registro si tiene éxito.

Conozco a alguien que utiliza esta configuración y funciona muy bien. Lamentablemente, no tengo su código, pero algunas búsquedas de Google para cada parte del proceso pueden resultar fructíferas.

Aquí hay un comienzo: http://www.google.com/search?&q=how+to+use+sql+job+table+to+send+emails El primer conjunto de enlaces se ve bien. Si comienzas por este camino y necesitas ayuda, avísanos.

+0

ouch. ¿alguien me puede decir por qué esta es una mala sugerencia? usamos este método para un par de aplicaciones y funciona muy bien ... ¿qué tiene de malo? – Albert

1

La manera más simple de diferir el envío de correo electrónico es programar una tarea en la herramienta de tareas programadas de Windows. Esta tarea es una simple llamada a un archivo vbs. Este archivo vbs abre una url desde su aplicación web. Detrás de esta url, ponga una página web que haga su trabajo programado dentro de la aplicación, en este caso, el envío de correos electrónicos. No necesita servicio de windows, solo un vbs simple. La página llamada está en su aplicación, por lo que no es necesario realizar ningún trabajo adicional para interactuar con los datos o el tratamiento fuera de la aplicación web.

Esperamos que esto ayude,

Saludos,

Pierre.

Cuestiones relacionadas