Menu

Retarder la fonction mailing de 5 minutes

- - Dernière réponse : jordane45
Messages postés
23647
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
- 22 juil. 2018 à 11:02
Bonjour à tous,

J'ai une application programmé en PHP qui propose un choix de type de problème à l'utilisateur qui contient 5 boutons, lorsque l'utilisateur clique sur un des bouton, un email s'envoie instantanément. Ce que je veux moi ce que je veux envoyer un email mais après 5 minutes par exemple. Je veux que le problème persiste pour qu'il envoie un email.

Veuillez répondre à ma demande SVP et si vous avez besoin de plus d'information je suis là
Afficher la suite 

Votre réponse

2 réponses

Messages postés
23647
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,
L'utilisateur clique ... et après ? Ca envoie le message tout seul au bout de 5 minutes ?
Et si le problème n'existe plus .... il s'envoie quand même ?
Sinon.. comment sait-on si le souci existe encore ou pas et si le message doit s'envoyer ???
Ne peux tu simplement pas faire en sorte que : (en javascript )
- La personne clique sur le bouton
- Un settimeout de 5 minutes se lance
- Au bout des 5 minutes, une fenêtre modale ( ou popup) s'ouvre et demande si il confirme l'envoie
- Si il clique sur oui.. ça "submit" ton formulaire pour faire l'envoie du mail.
Par contre... que se passe t-il si l'utilisateur ferme la fenêtre entre son premier clique et le second ?? là le mail ne sera pas envoyé...

Bref.. il faudrait bien reflechir au mécanisme que tu souhaites mettre en place avant d'essayer de coder quoi que ce soit.
A mon avis.. ce n'est pas encore bien défini dans ta tête ou alors tu n'as pas sû nous le retranscrire dans ta demande...
-
Tout d'abord merci de ta réponse,
Non c'est bien détaillé dans ma tête mais j'ai pas bien expliqué la situation comme je voulais.
Donc l'utilisateur clique sur un bouton, une autre page apparaît afin d'acquitter le problème, si le problème persiste dans 5 minutes il faut informer par email la personne concerné par ce problème.
Je veux faire ça afin de ne pas nuire à la personne concerné, lui envoyer un email pour chaque petit problème. Je veux lui informer juste dans le cas où le problème persiste depuis 5 minutes.
Si le problème est acquitté au bout de 3 minutes par exemple, un email NE SERA PAS envoyé, et il reviens dans la page principale (Là où il y a les 5 boutons).
Et les problèmes sont bien enregistré dans une base de données, mon soucis est simplement d'envoyer un email en cas où le problème persiste, si ce n'est pas le cas ne rien envoyer.
J'espère que j'était clair là dessus.
Je te remercie encore
jordane45
Messages postés
23647
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
-
Dans ce cas, la solution proposée par ThEBiShOp est sûrement la plus simple.

Lorsque l'utilisateur clique sur le bouton ça inscrit (dans une table) l'heure à laquelle le clique a été fait. et renseigne un champ "A_ENVOYER" (par exemple) de la table à 1
Si l'utilisateur n'annule pas son problème ce champ reste à 1 (sinon tu le repasses à 0).

Un tâche Cron tournant toutes les minutes par exemple, scan les incidents dont le champ A_ENVOYER est à 1 et dont l'heure est supérieur à 5 minutes.
Si il en trouve... il les envois par mail. (et place le champ A_ENVOYER à 3 (ou à 0 ) par exemple pour éviter de renvoyer plusieurs fois le même mail)
-
Merci de ta réponse mais malheuresment j'ai essayé et j'ai pas pu réussi mes tests de CRON mais d'après ce que j'ai remarqué de CRON c'est que ça marche seulement sur Linux et moi j'héberge mon application sur VMWare local sous Windows Server 2012, SVP est-ce que vous pouvez me détailler une solution similaire à CRON mais sous Windows? Je te remercie à l'avance
Commenter la réponse de jordane45
Messages postés
8563
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
0
Merci
Suivant le type d'accès que tu as au serveur d'hébergement tu peux mettre en place un système avec une tache CRON
-
Merci de ta réponse; je vais essayé me documenter sur CRON
ThEBiShOp
Messages postés
8563
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
-
Si tu maitrises le serveur (au moins possède un accès SSH) tu peux facilement mettre en place une tâche CRON, il faudra simplement que tu crées un script en PHP (ou autre, c'est pas un soucis) qui fasse le traitement qui a été décrit par jordane45.

Si tu es sur un hébergement mutualisé, ça risque d'être compliqué. Certains hébergeurs permettent malgré tout de mettre en place des tâches CRON sur des mutu...
-
Merci de ta réponse mais malheureusement j'ai essayé et j'ai pas pu réussi mes tests de CRON mais d'après ce que j'ai remarqué de CRON c'est que ça marche seulement sur Linux et moi j'héberge mon application sur VMWare local sous Windows Server 2012, SVP est-ce que vous pouvez me détailler une solution similaire à CRON mais sous Windows? Je te remercie à l'avance
jordane45
Messages postés
23647
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
> KhaledAbdelmalek -
Sous windows on appel ça les TACHES PLANIFIEES
Commenter la réponse de ThEBiShOp