Salva nel database la data di scadenza, ogni giorno fai partire uno script che fa una query sulla tabella con le scadenze e recuperi le entry con
data_di_scadenza - data_corrente = 2
se la query ti ritorna dei record mandi un'email ai rispettivi indirizzi email.

La differenza tra date puoi farla a seconda di come salverai le date, ma puoi fare riferimento alla funzione datediff di MySQL (non di PHP, così fai solo una select)

per esempio
SELECT * FROM tabella WHERE DATEDIFF(campo_data_scadenza,NOW()) = 2;