Étant donné que http est un protocole de réponse, si vous souhaitez envoyer des e-mails de manière asynchrone, il doit être implémenté par le serveur lui-même, et non par http lui-même.
En termes de conception, pour ceux qui disposent de ressources serveur suffisantes, un serveur peut être utilisé comme serveur de messagerie dédié et l'interface peut être exposée au monde extérieur pour envoyer des e-mails de manière asynchrone. Sinon, vous devez stocker l'e-mail et le contenu à envoyer (tels qu'une base de données, un fichier texte, Redis, etc.), puis l'envoyer de manière asynchrone via les méthodes suivantes. Pour les serveurs de la série Windows, vous pouvez écrire des services et utiliser des tâches système pour les implémenter simplement. Pour les serveurs de la série Linux, cela peut être réalisé via corn le timing, les processus démons, etc.
Mettez une donnée dans la table des messages (y compris l'expéditeur, le statut d'envoi, le problème d'envoi, le type d'envoi), créez une tâche, analysez régulièrement la table des messages, recherchez les messages non envoyés, envoyez le message et modifiez l'état de la table des messages.
Étant donné que http est un protocole de réponse, si vous souhaitez envoyer des e-mails de manière asynchrone, il doit être implémenté par le serveur lui-même, et non par http lui-même.
En termes de conception, pour ceux qui disposent de ressources serveur suffisantes, un serveur peut être utilisé comme serveur de messagerie dédié et l'interface peut être exposée au monde extérieur pour envoyer des e-mails de manière asynchrone.
Sinon, vous devez stocker l'e-mail et le contenu à envoyer (tels qu'une base de données, un fichier texte, Redis, etc.), puis l'envoyer de manière asynchrone via les méthodes suivantes.
Pour les serveurs de la série Windows, vous pouvez écrire des services et utiliser des tâches système pour les implémenter simplement.
Pour les serveurs de la série Linux, cela peut être réalisé via
corn
le timing, les processus démons, etc.Mettez une donnée dans la table des messages (y compris l'expéditeur, le statut d'envoi, le problème d'envoi, le type d'envoi), créez une tâche, analysez régulièrement la table des messages, recherchez les messages non envoyés, envoyez le message et modifiez l'état de la table des messages.
Personnellement, je trouve que c'est un peu trop compliqué. N'est-il pas possible d'ouvrir simplement le fil de discussion de manière asynchrone ?