Méthode recommandée pour envoyer des e-mails en masse dans une application (ASP.NET MVC 2, C #)?

Quel est le meilleur moyen d’implémenter la fonctionnalité d’envoi d’emails en masse dans une application Web? Deux cas majeurs:

  1. E-mails pour des utilisateurs enregistrés séparés en fonction de leurs activités (envoi de brefs rappels à un utilisateur, par exemple, au sujet de nouveaux messages dans son sujet créé)

  2. “Envoyer un courrier électronique à tous les utilisateurs enregistrés”, il sera intéressant de disposer d’une fonction permettant à l’administrateur système d’envoyer des messages à tous les utilisateurs enregistrés. Bien sûr, append tous les courriels au destinataire n’est pas la solution, car les adresses électroniques de chaque utilisateur sont anonymes.

Si je comprends bien, dans le cas n ° 1, il n’ya pas de problème. Créez simplement un message électronique via System.Net.Mail en créant un nouveau message et en l’envoyant …

je suppose que ça ressemble à ça:

foreach(var emailAddress in emailAddresses) { MailMessage mail = new MailMessage(); mail.From = new MailAddress("[email protected]"); mail.To.Add(emailAddress); mail.Subject = "test"; mail.Body = "test"; SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); smtp.Send(mail); } 

n’est-ce pas le bon moyen 🙂 alors la question est quel est le meilleur moyen d’y parvenir?

nous n’avons pas la possibilité de déployer un certain nombre de messages pour l’envoi de courrier électronique, cela devrait être intégré à une application Web.

Une autre chose: n’utilisez pas gmail. Premièrement, gmail a des limites – de toute façon, n’utilisez aucun serveur externe.

Je fais des choses comme ça, et j’utilise un répertoire de repository sur le disque dur, puis un MTA (service SMTP dans Windows) pour effectuer le transfert.

De cette façon, je termine rapidement (juste la génération de fichier), alors que les courriels peuvent prendre plus de temps.

Si vous voulez masquer qui cela va dans le cas 2, pourquoi ne pouvez-vous pas mettre les destinataires dans le BCC de MailMessage?

Une chose que je recommanderais est de définir vos parameters de messagerie dans votre web.config comme ci-dessous:

           ...   

Si vous recevez trop de messages dans l’instance “emailAddresses”, vous rencontrez un problème de délai. Vous pourriez envisager une petite application de service Windows pour gérer la fonction d’envoi. Ça marche pour moi.