2011-02-27 6 views
3

Comment envoyer des e-mails sur une base quotidienne, hebdomadaire et mensuelle à l'aide de C# .net?Comment envoyer un email automatique sur des bases quotidiennes, hebdomadaires et mensuelles?

Je pensais à créer une application de service Windows, mais je ne sais pas comment faire et si c'est la bonne façon de prendre.

Vos pensées sont grandement appréciées.

+0

Avez-vous vraiment besoin d'envoyer un e-mail depuis l'application .NET? Autre option: envoyer à partir du travail SQL Server. – Alexan

Répondre

2

Un service Windows est probablement la meilleure option.

Dans votre service avoir une minuterie qui se déclenche avec la résolution dont vous avez besoin (chaque minute/heure/jour etc) et sur la tique de la minuterie même envoyer vos e-mails.

Il y a manytutorialsforcreatingwindowsservices avec .NET.

+0

N'est-ce pas trop technique? Quel est le problème avec le planificateur de tâches Windows? –

2

Un service Windows fera l'affaire. Un bon avantage d'un service Windows est qu'il démarre au démarrage de Windows (ou peut être configuré de toute façon). Ainsi, la machine peut être laissée sans surveillance (comme devrait l'être un bon serveur) et n'a besoin d'aucun utilisateur connecté pour que le service s'exécute. Donc, si c'est une considération importante pour votre scénario alors peut-être un service Windows serait le chemin à parcourir.

Si vous voulez simplement créer une application de console à la place (ce qui peut généralement être plus facile à créer/tester/déboguer), vous pouvez la programmer avec le planificateur de tâches Windows natif. Cependant, à moins que je ne me trompe, je pense qu'un utilisateur doit être connecté à la machine pour pouvoir l'exécuter. Au moins dans certaines circonstances. Donc, un service Windows est probablement votre meilleur pari pour une tâche sans surveillance. En ce qui concerne la création du service, Visual Studio doit disposer d'un modèle de projet pour cela. La planification serait traitée avec un Timer.

2

Vous pouvez également utiliser le planificateur de tâches Windows. Quartz.Net semble être le bon outil, aussi (jamais utilisé cependant).

2

Windows Service est un bon choix. N'oubliez pas de sauvegarder l'état sur le disque (fichier ou base de données) car le redémarrage du service (par exemple, en raison d'un redémarrage) est possible. Par exemple, votre prochaine livraison d'email est une semaine dans le futur, vous devez enregistrer cette date sur le disque. Ainsi, lorsque votre serveur est arrêté en raison d'une panne de courant 3 jours plus tard et qu'il se rétablit après un autre jour, votre service Windows peut toujours régler le bon délai en fonction de la date enregistrée sur le disque.

1

Créez une application de console qui sera lancée à partir du planificateur de tâches Windows. Création d'un service Windows est inutilement complexe, IMO, puisque vous exécutez simplement le programme en réponse à des intervalles de temps; pas d'autres événements externes imprévisibles où vous auriez besoin d'une application de type 'listener'. BAISER!

Questions connexes