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 ?