立即获取新邮件

立即获取新邮件

到目前为止,我们使用该工具接收新邮件获取邮件

运行良好。有一个 cron 任务每分钟运行一次。

有没有什么办法可以更快的收到邮件?

我认为有两种方法:

  • 解决方案 1:每 30 秒运行一次 cron 任务
  • 解决方案 2:也许使用 IMAP 空闲。我的意思是更像守护进程的方式,而不是每分钟被调用的 CLT。
  • 解决方案 3:???

解决方案 1 很简单:

* * * * * getmail; sleep 25; getmail

欢迎提供更好的解决方案。

协议:IMAP

答案1

getmail 似乎支持 IMAP IDLE。因此,您可以编写一个简单的 systemd 作业:

[Unit]
Description=Starts getmail
After=network.target

[Service]
ExecStart=/usr/bin/getmail --idle=INBOX
Restart=on-failure

[Install]
WantedBy=multi-user.target

放进去/etc/systemd/system/getmail-idle.service然后运行systemctl enable --now getmail-idle

当然,您可能需要User=向 getmail 添加您需要定制的内容和参数。

答案2

使用 IMAP 和 --idle 选项在守护进程模式下使用 fetchmail 可能会解决问题。请查看手册页,因为其中提到了一些限制。

答案3

更好的解决方案(IMHO):将您的邮件服务器置于可以直接传送到的位置(例如,不是防火墙后面的内部服务器)。

  • 使用一些邮件托管服务或某种形式的 VPS 自行运行
  • 如果您想将其保存在防火墙后面,请让 MX 成为可以通过 VPN 或类似方式与您的内部邮件服务器通信的机器。

答案4

您是否考虑过在父系统上设置转发?这样可以避免轮询,还可以避免 IDLE 解决方案及其持久连接。在主服务器上,您可以设置某种方式使其到达远程服务器。这可能使用“别名”数据库,也许使用自定义“传输”设置来到达远程计算机。

主服务器上有别名功能和转发功能吗?您正在运行什么邮件传输?

相关内容