Si no puede tener un script en ejecución continua, algo debe activarlo, por lo que tendría que depender de los componentes internos de su sistema operativo. En un entorno Unix, un trabajo cron, como usted mismo dice, sería suficiente.
Configure cron para ejecutar la secuencia de comandos, y haga que la secuencia de comandos espere un tiempo determinado y luego continúe ejecutándose y enviándose hasta que el próximo correo electrónico sea más largo que este tiempo determinado. Luego haga que su secuencia de comandos agregue un nuevo trabajo cron para una nueva hora de activación.