0

J'ai une application Web ASP.NET MVC en C#. Je veux envoyer des courriels en vrac avec pièces jointes sans délai. J'utilise Microsoft.Exchange.WebServices pour envoyer des emails en utilisant un serveur Exchange. Tout fonctionne bien, mais même pour l'envoi de 2 emails avec 1 Mo de pièces jointes prend environ 30-45 secondes de temps. J'ai des cas d'utilisation de l'envoi de 2000 emails aussi je sais que ça va planter le serveur.Envoyer des e-mails en masse de manière asynchrone à l'aide d'EWS dans ASP.NET MVC

Exigence: Dès que je clique sur Envoyer dans mon interface utilisateur, l'utilisateur doit indiquer que les e-mails sont envoyés et que l'utilisateur peut continuer à naviguer.

Existe-t-il un moyen asynchrone d'envoyer des courriers électroniques en masse dans ASP.NET C# à l'aide d'EWS? Je googlé et trouvé couple d'options que je ne l'ai pas encore mis en œuvre, mais je quelques questions:

  1. Puis-je utiliser des délégués pour faire le travail de manière asynchrone? Qu'arrivera-t-il si un utilisateur quitte l'application? Finira-t-il d'envoyer des courriels ou d'arrêter? Puis-je utiliser System.Threading.ThreadPool.QueueUserWorkItem? Qu'arrivera-t-il si un utilisateur quitte l'application? Finira-t-il d'envoyer des courriels ou d'arrêter?

  2. Dans le passé, j'ai utilisé MSMQ pour accomplir cette tâche, mais nous n'avons pas le temps d'implémenter tout le mécanisme, y compris les écouteurs.

+0

Séparez l'envoi de courriels dans une application différente. L'application web * met simplement en attente * les emails à envoyer. Si vous utilisez une file d'attente de messages ou simplement enregistrer des enregistrements dans une table de base de données, c'est à vous de décider. Une application distincte, peut-être un service Windows ou une application de console programmée ou un type de travail régulier, interrogerait quelque part ces données (file d'attente de messages, base de données, etc.) et boucle les enregistrements pour envoyer les emails. – David

Répondre

0

Pourquoi avez-vous besoin d'utiliser SAP? SMTP serait un meilleur choix pour l'envoi de courrier en volume, le service de transport sur le serveur Exchange gérera et mettra en file d'attente les messages si nécessaire s'ils ne sont pas destinés aux utilisateurs internes, puis les enverra à leurs sources externes. L'utilisation de EWS signifie que le magasin Exchange traitera les messages et que vous serez potentiellement limité si la limitation est activée, ce qui devrait vous empêcher de trop affecter le serveur mais ralentirait le processus. L'utilisation de SMTP permettrait d'éviter tout impact sur les utilisateurs finaux utilisant Outlook (à condition que le serveur soit multi-roulé et que votre application ne soit pas essentiellement votre propre serveur) mais pourrait avoir un impact sur le flux de messages entrant et sortant de votre organisation. sur le nombre d'e-mails que vous envoyez, car il devra traiter le message dans les files d'attente.