Código PHP:
// Consulta para obtener las filas de la tabla con la fecha de vigencia a menos de 30 días para caducar pero sin haberlo hecho todavía
$sql = "SELECT * from <Tabla> where DATE_ADD( CURDATE( ) , INTERVAL 30
DAY ) > `fecha_vigencia` and fecha_vigencia >= curdate()";
// Ejecutar la consulta
$r = mysql_query($r);
// Iterar en las filas:
while ($fila = mysql_fetch_assoc($r)) {
// Tratamientos para cada fila. Por ejemplo, enviar un email
// ...
}
Saludos