0

对于我的投资组合软件,我一直在使用fetchmail通过 IMAP 从 Google 电子邮件帐户读取内容,并且生活非常棒。由于 imap3 支持的空闲连接奇迹,我的触发器由于服务器推送而近乎实时地触发,比定期轮询所允许的要快得多。

在我的基本.fetchmailrc设置中,经纪客户的账户通过电子邮件将交易通知发送到专用的 Gmail/Google Apps 邮箱,我有

poll imap.gmail.com proto imap user "youraddress@yourdomain-OR-gmail.com" 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 和Thunderbird)并且从未注意到这个排他性问题。

我没有尝试使用单独的-f配置文件启动多个 fetchmail 守护程序(假设它们不会冲突),或者另外部署一个或多个 getmail 和其他类似的电子邮件提取器。仍在努力避免那种混乱——我必须监控的盒子越多,就无法扩展。

4

1 回答 1

0

没有临时参考,但fetchmail我记得在 的文档中某处读到idle与其说是imap功能不如说是 fetchmail 可选技巧,它有一个(对我来说很讨厌)副作用,即从轮询中阻塞所有其他定义的帐户直到连接被某些外部事件或超时切断。所以至少这会证明谷歌是正确的。

感谢Carl 的 Whine Rack博客提供一些提示。

现在我killall fetchmail; fetchmail -f fetcher.$[$RANDOM % $numaccounts].rc定期使用 fromcrontab到循环阅读帐户,每个帐户在fetcher.1.rc,fetcher.2.rc等中单独定义。在电子邮件事件相对不常见的情况下是可以接受的。

于 2012-02-12T20:25:57.030 回答