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:
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?
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.
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