Даниил, вы пробуете через самбу, а она-то ещё тормознее общей папки Vbox. Вам необходимо раскатывать проект на эти машины для полноценного тестирования в нативной среде.
Правильно ли я понял задачу:
Ваш скрипт должен прочитать письмо после пользователя?
Или вы хотите прочитать письмо, но пользователь не должен этого понять?
Если IMAP-сервер свой, то в случае с Dovecot можно, используя, Plugins/MailLog отловить событие установки флага "прочитанно".
nikichur, это невозможно по той причине, что если исходящий канал вы можете проконтролировать, то входящий - нет. Трафик уже пришёл от провайдера, забил канал и смысла в выделении канала на вашем оборудовании уже нет. Предложенный мною способ №1 самый гарантированный и недорогой.
Весь алгоритм запроса у вас тут расписан. Дальше можно написать лишь готовый запрос прям по тексту - исключить дубли (при условии что строки таблиц можно соотнести) и исключить всё содержимое 2-ой таблицы. В чём вопрос заключается, с чем возникла проблема?
LoveTheBeautifulSkies: должно быть в рамках одной транзакции и одного подключения. Если соединения прервется, транзакция откатится. Главное чтобы был отключён автокоммит, как там упоминается.
LoveTheBeautifulSkies: Стартуете транзакцию, проверяете баланс с for update, делаете с ним что-то, производите списания/зачисления и делаете коммит транзакции (или откат, если баланс, скажем, недостаточный). Лок после этого снимается.