Easiest is to also store when you last mailed them.
Then iterate through the list on a regular (e.g. daily basis), and send out those that need an update.
If you do it like this, even if it would stop halfway for whatever reason, the next day would pick up the slack, even if it were to start twice for some reason: no doubles would be sent out.
A daily cron entry e.g. would be ideal in my mind.