J'ai l'application ASP.NET MVC et j'ai besoin d'envoyer un email en "X" minutes (pour chaque utilisateur temps est différent) à l'utilisateur après qu'il quitte la page. Comment puis-je le faire?Comment envoyer un email avec retard?
Répondre
Http est sans état et la réponse de temps est envoyée l'exection de la page est terminée. Vous avez besoin d'un application that will be sending mail even website is not accessed by some body for a significant time interval
. Vous pouvez mettre les mails qui doivent être envoyés après un intervalle de temps dans la base de données. Une autre application pourrait être un service Windows qui regroupera la base de données après un intervalle de temps fixe soit disons 30 secondes et enverra les mails ayant atteint l'heure d'envoi.
Je suis d'accord. Si ces e-mails sont importants, il est important de les placer dans une table de base de données, afin que votre service qui lit la table et envoie des e-mails puisse le faire dans une transaction. Si vous n'avez pas utilisé de base de données et les avez mis en file d'attente dans une sorte de service, alors ils n'existent qu'en mémoire jusqu'à ce que le temps s'écoule et qu'ils soient envoyés. Ainsi, si le service tombe en panne, l'e-mail en attente sera perdu. Cela dépend de l'importance de ces courriels. Il serait également mieux que d'avoir le service de suivre les courriels. Au lieu de cela, il interroge simplement la table et voit lesquels SendAtTime <= DateTime.Now (ou UTC?) – AaronLS
La solution que je choisirais dépend de l'échelle et de la fiabilité requises du système que vous construisez.
Si c'est une échelle réduite (ie 1 serveur avec pas trop d'utilisateurs en même temps), système non critique (ie c'est correct si de temps en temps certains emails ne sont pas réellement envoyés, par exemple si votre serveur plantage), alors la solution peut être aussi simple que de gérer une file d'attente en mémoire avec un fil qui se réveillerait périodiquement pour envoyer des courriels aux utilisateurs qui ont récemment quitté la page.
Si vous avez besoin de construire quelque chose qui serait très fiable et qui pourrait potentiellement envoyer un très grand nombre de courriels dans un court laps de temps, et si votre système doit évoluer vers un grand nombre de machines, alors vous voudriez construire une solution basée sur une file d'attente dans un stockage, où autant de machines que nécessaire sélectionnaient des éléments et les manipulaient. Une API telle que Windows Azure Queue Service peut être un bon choix si vous avez besoin d'une très grande échelle et d'une grande fiabilité.
- 1. Comment envoyer un email avec PHP?
- 2. Comment envoyer un email HTML avec Agularjs?
- 3. Comment envoyer un email avec des rails
- 4. Comment envoyer un email avec django-registration?
- 5. comment envoyer un email HTML
- 6. Comment envoyer un email html?
- 7. Comment envoyer un email URL
- 8. Comment envoyer un email avec un tableau HTML avec PHP?
- 9. Envoyer un email à Nodemailer avec Namecheap email
- 10. Envoyer un email à email ID
- 11. envoyer un email html
- 12. envoyer un email automaticlly
- 13. KRL: puis-je envoyer un email avec email: forward()?
- 14. comment envoyer un email avec un graphisme via php
- 15. Comment envoyer un lien avec des valeurs dans un email?
- 16. comment envoyer un email SMTP avec un nom d'expéditeur Unicode
- 17. Envoyer un email sur softlayer
- 18. Comment envoyer un email personnalisé dans phplist
- 19. comment envoyer un email via smartermail?
- 20. Comment envoyer un email dans Android?
- 21. Comment envoyer un logcat par email?
- 22. Comment envoyer un email UTF-8?
- 23. Comment envoyer un email de jsp/servlet?
- 24. comment envoyer un email à asp.net mvc4
- 25. android: comment envoyer un email intelligent
- 26. Comment envoyer un email sans utiliser ViewController?
- 27. Comment envoyer un email en utilisant C#?
- 28. Comment envoyer un email avec pièce jointe dans wordpress?
- 29. comment envoyer un email via mailx avec le fichier joint
- 30. Comment envoyer un email avec des caractères espagnols
hmm. Ça ne va pas être simple. Vous pouvez simplement implémenter un travail cron, avoir une url envoyer l'email et appeler cette URL X minutes de votre serveur. Cela ne fonctionnera que si vous avez un peu de contrôle sur votre serveur. Ou, si vous avez un trafic correct, à chaque nouvelle demande, vous vérifiez les enregistrements précédents pour voir si ces minutes sont passées et ensuite vous envoyez votre courrier. – gideon
Cela devrait être délégué à un service quelconque. –
Downvotes devrait être commenté. Je ne vois rien de mal à la question. Si vous pensez que la solution sera difficile, cela ne signifie pas que la question est mauvaise. Je peux clairement comprendre exactement ce qu'il demande. – AaronLS