Une façon de le faire serait d'avoir une table OutgoingEmail, et dans cette table stocker la date/heure que l'email devrait sortir, l'e-mail adresse, sujet et corps. Lorsque l'événement est organisé, générez le contenu de l'e-mail et insérez un enregistrement pour chaque participant avec la date/heure actuelle. Si l'administrateur sélectionne un rappel pour sortir, insérez également ces e-mails avec cette date/heure future. Lorsque l'événement change, effacez tous les enregistrements de courrier sortant sortants pour cet événement et insérez des enregistrements pour un e-mail 'event changed' (et ajoutez si nécessaire de nouveaux e-mails de rappel avec les détails mis à jour.)
Créez votre script PHP s'exécutera à partir du crontab, et fera interroger tous les enregistrements dans la table OutgoingEmail avec la date/heure dans le passé. Parcourez-les en utilisant la fonction PHP mail() et supprimez-les lorsque vous les envoyez avec succès.
Programmez-le pour qu'il s'exécute toutes les 10 minutes, et vous devez coder une routine pour vous assurer qu'une seule instance s'exécute à la fois. Dans le passé, j'ai créé un fichier 'lock', et le début du script vérifiait le fichier de verrouillage. Si le fichier de verrouillage existe, quittez. Si ce n'est pas le cas, créez-le, traitez les e-mails, puis supprimez le fichier de verrouillage.
Avez-vous d'autres questions?
merci, je ne pouvais pas encore travailler sur ce point, je vais poster plus de notes/accepter les réponses une fois que j'ai terminé. – Jay