+1 von mir. Konkret heißt das, dass das Script nur dann auf Mailversenden prüfen darf, wenn es auch vom Cronjob her aufgerufen wird. Das kann man zur Not mit einem URL-Parameter ($_GET) tun, wenn es keine anderen Möglichkeiten (wie z.B. $_SERVER['REMOTE_ADDR']) gibt, die Quelle des Aufrufs zu ermitteln.
Ich würde dafür ein separates Script hernehmen, was bestenfalls überhaupt nicht via HTTP erreichbar ist.