I have something like this that I do. I have the expiration date inserted in the database
$expire = date("Y-m-d", mktime(0,0,0, date(m), date(d), date(Y)+1));
Then I have a script that I run in a cron job every day that gathers the list of people about to expire and shoots them the email.