If you have a DB involved, you could create a message queue table. When you want to notify people, you add a new record to the queue table with the name, email address, subject, body, timestamp1 (record added), timestamp2 (email sent) and sent/unsent boolean flag. Then you have a process that runs every 10, 15, 30 minutes (whatever works best) that goes through the queue looking for unsent messages, sends the email, then flags it sent.