Вы можете использовать планировщик заданий, который является эквивалентом chron, или вы можете написать службу Windows, которая периодически проверяет время и, если это после полуночи, может отправлять электронные письма.
Вы не можете сделать это из своей веб-формы, потому что этот код выполняется только тогда, когда пользователь находится на сайте, и очень плохая практика оставлять поток работающим; В любом случае, я бы его переработал.