A propos de la fonction mail de php

Démarré par Couet, 18 Septembre 2008 à 12:47

0 Membres et 1 Invité sur ce sujet

Bonjour ! Une petite question pour les codeurs fous de php :)

Est-il possible de bidouiller une fonction php d'envoi de mail de confirmation, de telle sorte que ce mail s'envoie à une date définie ? (genre, le mail s'envoie automatiquement 8j après)

Je n'ai pas réussi à trouver cela et je pense que ça nécessite un truc beaucoup plus compliqué à gérer qu'un simple ajout dans le code, puisque ça implique un stockage un peu plus long des données.

Merci d'avance :)


Déjà, si je ne m'abuse, la fonction mail de PHP n'est pas directement utilisable sur certains serveurs de type Free pour éviter l'abus et les spams. Ou je crois plus récemment, a t-elle été rendue exploitable mais un nombre limité de fois par mois.

Pour tes besoins, ça sous-entend de toute façon qu'il y aurait un script, quelque soit sa forme et son langage, qui devrait vérifier par exemple toutes les nuits si la date est atteinte et si oui, envoyer le mail. Ca sous-entend donc par exemple d'ajouter un script dans la cron table du serveur.

Je ne connais pas ton serveur, ton degré d'accès à celui-ci mais si c'est du Free, ou toute autre plateforme gratuite, c'est mort je crois.

Mon serveur c'est Chris :P

Mais par contre, j'ai créé le site en question grâce à logiciel qui inclut tout seul les tables d'administration, de gestion de membres : Joomla.
Je pensais donc bidouiller le script (après l'avoir traqué dans la foultitude des dossiers) qui gère les mails automatiques. C'est pour ça que je pensais que ça ne serait pas aussi facile.

Et puis, c'était une demande de la part des propriétaires du site (Chris pas de délation :P ) et après réflexion, pour moi, c'est très peu judicieux de décaler un envoi de mail.


18 Septembre 2008 à 14:44 #3 Dernière édition: 18 Septembre 2008 à 15:00 par Christopho
Ouais et c'est un super serveur :P
Il est impossible de faire ça en php car un script php ne s'exécute que lorsque la page est chargée par le visiteur. Y'a pas moyen de dire "je veux exécuter telle fonction dans 8 jours".

Si vous y tenez vraiment, il y a une solution mais un peu compliquée et vous ne pouvez pas le faire vous-même, c'est moi qui dois le faire. Il faut modifier le script de Joomla pour remplacer les envois de mails par l'ajout d'une information dans la base de données. Ensuite, comme dit Geomaster, il faut configurer le serveur pour qu'il exécute un programme spécial une fois par jour, programme qui irait voir dans la base de données si c'est le moment ou non d'envoyer les mails et à qui. C'est chiant à mettre en place et vous n'aurez pas le contrôle de ce programme spécial. Alors à moins que ça soit vraiment indispensable, je vous conseillerais de vous en passer ^^.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

C'est ce que je leur ai dit aussi après réflexion, on n'a absolument rien à y gagner en instaurant cette fonction qui plus est.


Je confirme impossible de le faire en PHP!
Et puis ce n'est pas forcément utile surtout 8 jours après.

Bref rien à redire la-dessus! Il faudrait utiliser un logiciel spécial sur le serveur pour qu'il programme un envoi de mail.
Ou alors y a la méthode bourrin.
Tu enregistre la date d'envoi dans la base de données
Et quand y a une personne qui va sur le site après la date enregistrée, il envois le mail considéré.
L'inconvénient c'est que si personne ne va sur le site après la date, y aura pas d'envoi de mail :P

C'est une méthode comme une autre bourrine et pas forcément fiable xD
Et ca nécéssite comme le dit Chris un rafraichissement de la page.



EDIT: Geomaster la fonction mail est désactivé chez free en effet :)

Ben logiquement, c'est le genre de trucs qu'on fait en mettant par exemple l'appel à un script dans la cron table du serveur, pour qu'il exécute ce script toutes les nuits. Ce script peut être en shell, en PHP, peu importe. Mais il faut avoir accès au serveur pour modifier autre chose que l'arborescence de son serveur web ^^

Il y a d'autres solutions (en Java par exemple) mais là encore il faut avoir suffisamment de droits d'accès sur la machine.

Sinon, j'ai une idée encore plus crade :D Couet pourrait paramètrer une tâche sur son Windows pour qu'à chaque fois qu'elle lance son PC par exemple, un script soit appelé pour faire ce qu'elle a à faire ^^ Crade à souhait mais fonctionnel si elle allume son ordi au moins une fois par jour :P

Citation de: Geomaster le 18 Septembre 2008 à 15:10

Sinon, j'ai une idée encore plus crade :D Couet pourrait paramètrer une tâche sur son Windows pour qu'à chaque fois qu'elle lance son PC par exemple, un script soit appelé pour faire ce qu'elle a à faire ^^ Crade à souhait mais fonctionnel si elle allume son ordi au moins une fois par jour :P

Et moi qui croyait avoir trouvé The solution Crados :ninja:

Ca va je suis pas le pire :mrgreen:

Mais vous avez fini de vouloir salir mon ordinateur oui  :angry:


Citation de: Geomaster le 18 Septembre 2008 à 15:10
Ben logiquement, c'est le genre de trucs qu'on fait en mettant par exemple l'appel à un script dans la cron table du serveur, pour qu'il exécute ce script toutes les nuits. Ce script peut être en shell, en PHP, peu importe. Mais il faut avoir accès au serveur pour modifier autre chose que l'arborescence de son serveur web ^^
Ouais logiquement, c'est un cron qu'il faudrait faire, un cron qui s'execute toutes les heures et qui verifie si y'a pas une action a executer...

Sinon on m'avais donné l'adresse d'un site web qui execute des taches à dates précises.
A l'origine c'est pour de la sauvegarde de BDD, mais on peut sans doute le modifier ?

http://www.webcron.org/

Bah un cron tout simple qui exécute un script toutes les heure par exemples suffit largement.  :)

Cf lien yoshi.  :)
Je t' lily.

Regex / Les ravages de linux
CitationDites, dans un CV, faut mettre si on préfère vim ou emacs ?
Dis papa comment on fait les bébé
[/table