2012-02-08 4 views
0

Для моего программного обеспечения для портфолио я использовал fetchmail для чтения с учетной записи электронной почты Google по IMAP, и жизнь была отличной. Благодаря чуду idle соединение, поддерживаемое imap3, мои триггеры срабатывают почти в режиме реального времени из-за нажатия на сервер, гораздо раньше, чем периодический опрос позволит в противном случае.чтение с нескольких imap.gmail.com от одного и того же клиента fetchmail

В моей основной .fetchmailrc установки, в которых сообщения об аккаунте торговые уведомления брокерский клиента в отдельный ящик Gmail/Google Apps, я имел

poll imap.gmail.com proto imap user "[email protected]" pass "yoMama" keep nofetchall ssl idle mimedecode limit 29000 no rewrite mda "myCustomSpecialMDAhandler.sh %F %T" 

Проблема, теперь мне нужно поддерживать чтение с множественным почтовые ящики и отправлять электронные письма другим специализированным сценариям MDA, которые я написал. Нет проблем, просто добавьте еще опрос строк до .fetchmailrc, правильно? Хорошо, что не работает, когда другие учетные записи также используют imap.gmail.com. То, что заканчивается, заключается в том, что, хотя одна учетная запись отлично читает (и не обязательно, чтобы первый из них был указан, хотя обычно да), другой получает «Ошибка сокета» весь день, и электронные письма остаются нетронутыми, непрочитанными. Я не могу понять, почему и даже не уверен, что это какой-то механизм на imap.gmail.com или нет, например. ограничивая одно соединение IMAP с хоста. Это не кажется правильным, поскольку я поддерживал IMAP-подключения со многими отдельными Gmail & аккаунтами Google Apps от одного и того же клиента в течение многих лет (например, Thunderbird) и никогда не замечал эту проблему исключительности.

Я не пробовал запускать несколько демонов fetchmail, используя отдельные файлы конфигурации -f (при условии, что они не конфликтуют) или развертывание одного или нескольких почтовых меток getmail и других подобных меток. Все еще пытаясь избежать такого рода беспорядков - нецелесообразно больше ящиков, которые я должен контролировать.

ответ

0

Не имеет ссылку экспромтом, но где-то в документации fetchmail «s Я вспоминаю, как читал, что простаивает не стольких функции IMAP как Fetchmail опционального трюк, который имеет (неприятный для меня) побочного эффекта отключение всех других определенных учетных записей от опроса до тех пор, пока соединение не будет отключено каким-либо внешним событием или таймаутом. Так что, по крайней мере, это будет защищать Google.

Кредит Carl's Whine Rack блог для получения некоторых советов.

Сейчас я использую killall fetchmail; fetchmail -f fetcher.$[$RANDOM % $numaccounts].rc периодически от crontab для чтения цикла счета каждого определяется индивидуально в fetcher.1.rc, fetcher.2.rc и т.д. Приемлемый в то время как по электронной почте события происходят относительно редко.