Uno schema molto approssimativo, supponendo che tu abbia già una tabella di database.
Ogni giorno esegui uno script che calcola todayminusonemonth (risolto nella risposta di Stratton) ed esegue un select * from databasetable where expirydate = todayminusonemonth
. Esegui l'iterazione sul set di risultati, componi un messaggio con le informazioni specifiche del target e invialo utilizzando l'interfaccia di posta di php.
È di gran lunga la soluzione più semplice per assicurarsi che lo script venga eseguito ogni giorno, se questa non è un'opzione dovrebbe essere aggiunta una colonna al db per indicare che la posta è stata inviata. Oppure è possibile creare una tabella aggiuntiva che elenca tutti i giorni per i quali sono state inviate le mail...
Vedere? Questa prima scomposizione del problema è stata abbastanza facile. Ora puoi iniziare a risolvere ciascuno di questi problemi parziali o cercare informazioni/howto per ciascuno. Sentiti libero di creare una nuova domanda con esigenze più specifiche che potresti avere.
Un problema che potresti incontrare è che il tuo host web non consente l'esecuzione di script cron. Una soluzione alternativa molto creativa che utilizza un servizio di monitoraggio del sito Web è spiegata in Non ho lavori cron sul mio server. Qual è un'alternativa per inviare e-mail senza l'input dell'utente?