- Сделай свою домашнюю работу.Вам следует изучить cron и PHP
Как создать работу cron с использованием PHP?
https://www.a2hosting.com/kb/developer-corner/php/run-php-scripts-from-cron-jobs
https://packagist.org/packages/peppeocchi/php-cron-scheduler
Вам нужно будет сохранить расписания в базе данных, чтобы вы могли редактировать, удалять и перепланировать их в случае потери таблицы cron.
После выхода из PHP послеон запускается сервером, вы можете использовать системную таблицу cron для запуска вашего сценария Sender в назначенное время.Для этого у вас есть 2 варианта:
Опция 1
Если ваш сервер работает на локальном хосте: 9091
Сохраните в задании cron идентификатор расписания из базы данных, чтобы ваш скрипт отправителя мог получить настройки из базы данных для отправки электронной почты.
# replace * * * * * with the schedule from the user
* * * * * curl localhost:9091/sendEmail?id=123
Вы также можете поместить информациюнапрямую, но вы потеряете расписание, если потеряете таблицу cron, если не сохраните в базе данных, поэтому лучше сохранить ее.
# replace * * * * * with the schedule from the user
* * * * * curl localhost:9091/sendEmail?addr=name@email.com&subscription=pets,house,food
Option 2
Если вы не ожидаете, что у вас будет много пользователей / расписаний, вы можете создавать задания cron каждый раз, когда пользователи запрашивают его, затем вы вызываете свой сценарий Sender, и этот сценарий получает из базы данных (запрос SELECT) всерасписания и отправьте на него электронную почту.
# Every hour for example
0 * * * * php path/to/script.php