Традиционный подход:
В зависимости от ОС, вы можете настроить запланированное задание (задание cron), которое выполняется с определенным интервалом (я думаю, что оно не должно быть очень точным, 3-5 минут мне кажется нормальным), извлекает просроченные строки из таблицы, отправляет электронные письма и помечает записи (я предлагаю добавить столбец email_status
) в зависимости от состояния доставки (успешность, неудача, отклонение и т. д.).Возможно, вы захотите добавить еще один столбец для хранения ответа почтового сервера.
Другой вариант более сложный.Вы можете написать собственный UDF, способный отправлять электронные письма.Затем вы создаете повторяющееся событие , которое вызывает эту функцию.Это может быть хорошим упражнением, но, возможно, не лучшим решением.Плюсы: полностью сделано на стороне сервера, клиентский код не требуется.Минусы: создание и отладка нативной функции может быть сложной задачей, функция должна быть загружена на экземпляр сервера, логика находится на сервере базы данных