Ведите очередь рассылки в таблице: сценарий каждые 15 минут отправляет подходящие сообщения, пропускает отписавшихся и сам записывает новые отписки.