これまで、ツール getmail を使用して新着メールを取得していました。
それはうまくいきます。毎分実行されるcronジョブがあります。
メールをより速く取得する方法はありますか?
私は2つの方法を見ます:
解決策1は簡単です:
* * * * * getmail; sleep 25; getmail
より良い解決策を歓迎します。
プロトコル:IMAP
getmailはIMAPIDLEをサポートしているようです。したがって、簡単な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に追加して、自分に合わせて調整する必要があるかもしれません。
iMAPと--idleオプションを使用したデーモンモードのfetchmailでうまくいく場合があります。いくつかの制限が記載されているので、manページをご覧ください。
より良い解決策(IMHO):メールサーバーを直接配信できる場所に配置します(たとえば、ファイアウォールの背後にある社内サーバーではありません)。
親システムで転送を設定することを検討しましたか?これにより、ポーリングの必要性が回避され、IDLEソリューションとその持続的接続も回避されます。マスターサーバーで、リモートサーバーに到達するための何らかの方法を設定します。これは、おそらくリモートマシンに到達するためのカスタム「トランスポート」設定を備えた「エイリアス」データベースを使用する場合があります。
マスターサーバーにエイリアス機能と転送機能がありますか?どのメールトランスポートを実行していますか?