Bonjour à vous,

Je suis nouveau sur ce blog que je trouve sympathique et je me retrouve avec un problème dont je n'arrive pas à régler ...

J'aimerai envoyer des mails automatiquement à partir de mon code php mais sans utiliser de cron.

On m'a dit que c'était possible mais en vin je n'y arrive pas.

J'ai fais mon code php avec un time qui dit à une date précise d'envoyer le mail à l'utilisateur concerné mais le script ne s’exécute pas ...

Quelqu'un aurait une idée comment faire, voir éventuellement un exemple ... ?

Merci d'avance,

Cordialement,

5 réponses


flotaponta
Réponse acceptée

si ton site est fréquenté au moins une fois par jour (ou plusieurs) par une seule personne, même un visiteur ce qui est plausible même si le site est petit, cela suffit de lanceer une vérif dans la page principale du genre:

  • la fonction verifie_compte_membre() a t'elle été éxécuté au moins une fois aujourd'hui ?
    -> si oui, ne fais rien, les membres ont déjà été avertis.
    -> si non, lancer une recherche des membres qui sont sont proches (de 2 semaines par exemple) de la date d’expiration du compte. Et envoyer un mail à ceux dont le critère est vérifié mais pas s'ils ont déjà eu un mail dans les 5 derniers jours.

Après, il suffit de renseigner un champ dans la table membres que cette personne à eu un mail à cette date là pour qu'il ne reçoive pas un mail à chaque fois que la vérification le détecte comme proche.
Il reste le risque que personne ne se connecte dans les 2 semaines, tu peux toujours augmenter la durée à un moins avant expiration, ou te connecter au moins une fois toi-même tous les 2 semaines.

Sinon, un cron par jour, c'est pas trop pour faire la même chose au final.

Bonjour et bien venu,

Le problème de ton code c'est que l'utilisateur doit être connecter sur le site le jour de ton heurs d'envoi, et pire encore,
il doit rafraichir sa page à la seconde près pour que le code php réagisse correctement il est aussi possible de s'aider d'une base de donner et de comparer la fameuse date d'envoi du mail et la date de la dernière connexion mais si le membre ne ce connecte pas il ne pourra pas recevoir de mail et si c'est pour un anniversaire c'est pas top, il serra envoyer mais en retard, après il peut effectivement il y avoir d'autres alternatives, comme les newsletters.
Pour quel raison tu veut envoyer des mails automatiques ?

Yakz
Auteur

Je veux mettre ce système en place pour prévenir les utilisateurs qui leur reste tant de temps avant la fin de leur compte.

Alors ce ne serai pas sérieux d'attendre que le membre se connecte car il est possible qu'il le fasse après l'invalidité de son compte.
Il serai possible mais contraignant de ne pas utiliser le service cron, car l'administrateur serai obligé de ce connecté chaque jours pour effectuer la requête.

Yakz
Auteur

Bonsoir,

D'accord, je vais suivre vos conseils.

Merci de m'avoir répondu.

Cordialement,