Jeśli nie możesz mieć stale działającego skryptu, coś musi go wyzwolić, więc musiałoby to polegać na wewnętrznych elementach systemu operacyjnego. W środowisku uniksowym zadanie crona, jak sam twierdzisz, załatwiłoby sprawę.
Ustaw cron, aby uruchamiał skrypt i niech skrypt czeka przez określony czas, a następnie kontynuuje działanie i wysyłanie, dopóki następny e-mail nie będzie dłuższy niż ten podany czas. Następnie spraw, aby Twój skrypt dodał nowe zadanie crona na nowy czas budzenia.