Хорошо. Это альтернативное решение. Предполагая, что нет причин, по которым вы хотите использовать электронную почту (например, ваша информация поступает из внешнего источника по электронной почте), я бы посоветовал использовать таблицу базы данных как более простой способ создания очереди ввода.
Просто опрашивайте базу данных на регулярной основе. Это будет намного, намного быстрее, чем опрос почтового ящика, и гораздо быстрее, чем вы думаете. Опрос базы данных очень быстрый, и вы можете легко опрашивать таблицу базы данных несколько сотен раз в минуту, практически не оказывая заметного влияния на производительность.
Просто создайте таблицу для хранения ваших элементов Q и добавьте дополнительное поле, в котором вы можете сохранить метку времени или отметить, что этот элемент q был обработан, затем вы просто снимаете следующий необработанный элемент со стека.
например,
MSSQL
select Top 1 * from tbl_MyQ where AlreadyHandled = 0
MySQL
select * from tbl_MyQ where AlreadyHandled = 0 Limit 1
тогда
update tbl_MyQ Set AlreadyHandled = 1 where QueueID = #ItemIDRetrieved#
Базы данных быстрые, запустите тест, если вас беспокоит. И они намного менее сложны, чем IMAP-события и почтовые ящики.