Вы можете использовать для этого таблицу mysql, поскольку вы уже работаете в mysql! Такой таблицы должно быть достаточно -
create table (
userid varchar(100),
useremail varchar(100),
int mailsent default 0
);
Ваша работа создателя будет создавать (или удалять) строки из этой таблицы.
Ваша почтовая программа будет извлекать все строки с mailsent
, установленным как 0, отправлять почту и устанавливать mailsent
как 1.
Однако, если вы действительно, действительно, действительно хотите использовать текстовый файл - вот подход -
Предположим, что первый вызов задания cron вашего создателя создает файл следующего вида -
user1,user1@example.com
user2,user2@example.com
user3,user3@example.com
Теперь в определенное время запускается задача mailer, которая выберет строки из этого файла, содержащие emailid, отправит их получателям и удалит email id в этих строках. (Вы можете использовать perl или sed для этого - будьте осторожны с синхронной записью этого файла от создателя) После этой операции ваш файл станет
user1
пользователь2
пользователь3
Через некоторое время создатель добавляет еще двух пользователей user4 и user5. Теперь ваш файл становится
user1
пользователь2
пользователь3
user4,user4@example.com
user5,user5@example.com
Когда задача mailer запустится снова, она будет отправлять письма только тем людям, у которых email id указан 0, как в шаге 2.
Существует несколько вариантов работы этой схемы.
Похоже на это:
https://github.com/falconindy/SquashFu
A backup program employing the use of SquashFS, Aufs and Rsync