2009-11-21 3 views
1

Existe-t-il un concept de file d'attente de messages dans ASP.NET? Je veux envoyer des milliers de messages différents à des milliers d'utilisateurs (c'est-à-dire que chaque utilisateur aura un courrier différent). Je veux envoyer le courrier à un moment donné, de sorte que chaque utilisateur le reçoive à un moment constant.Existe-t-il un système de file d'attente de messages dans ASP.NET?

+2

euh oh ... ne pas inclure mon email @ dans la liste ;-) – mjv

Répondre

3

Il n'y a vraiment pas de file d'attente de messages dans le framework Core. Vous pouvez envoyer des messages individuels de manière synchrone ou asynchrone, mais vous ne pouvez pas vraiment envoyer un paquet à la fois.

Vous pouvez mettre en file d'attente vos messages en les stockant dans une base de données ou un serveur de fichiers, puis en lançant un travail pour faire défiler vos messages enregistrés et les envoyer.

De même, tous vos utilisateurs ne recevront pas les messages en même temps, même si vous pouvez les envoyer en même temps. Il y a trop de variables et de dépendances externes (trafic réseau, charges de serveur de messagerie, filtres anti-spams) pour prédire avec précision quand ou même si vos utilisateurs reçoivent leurs messages.

+0

@Jason: Totalement d'accord avec vous :) +1 –

+0

Ok jason thanku pour votre réponse ... –

0

Il n'existe pas de concept MailQueue natif dans le framework .NET. La file d'attente devra être implémentée par vous-même. Dans votre cas, vous souhaitez que les mails de chaque destinataire soient envoyés à peu près au même moment pour tous les lots. Ai-je raison?

Eh bien, c'est un peu difficile. Vous pouvez utiliser n'importe quel serveur SMTP, localhost ou externe. Mais cela signifie également que bien que vous puissiez envoyer au serveur SMTP à un moment précis, il n'y a aucune garantie qu'il atteindra les destinataires immédiatement.

Il ya beaucoup de choses sur la livraison de courrier qui ne sont pas exactement liées à la programmation (liste grise, filtrage de spam, etc etc).

L'alternative est d'avoir un contrôle total sur l'envoi et que votre application envoie directement les mails aux serveurs de messagerie des destinataires. Eh bien, c'est faisable et je vous suggère d'utiliser un commercial ou un bon composant open source pour cela. Quoi qu'il en soit, il reste encore un tas de problèmes à résoudre (par exemple, certains serveurs de messagerie comme Yahoo peuvent bloquer l'envoi plusieurs fois et le laisser passer après quelques tentatives).

J'ai posté une question connexe, jetez un oeil aux réponses here.

Questions connexes