web-dev-qa-db-ja.com

すぐに新着メールを受け取る

これまで、ツール getmail を使用して新着メールを取得していました。

それはうまくいきます。毎分実行されるcronジョブがあります。

メールをより速く取得する方法はありますか?

私は2つの方法を見ます:

  • 解決策1:30秒ごとにcronジョブを実行する
  • 解決策2:IMAPアイドルを使用する可能性があります。私は、毎分呼び出されるCLTではなく、よりデーモンのような方法を意味します。
  • 解決策3:???

解決策1は簡単です:

* * * * * getmail; sleep 25; getmail

より良い解決策を歓迎します。

プロトコル:IMAP

2
guettli

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に追加して、自分に合わせて調整する必要があるかもしれません。

9
Stefan Seidel

iMAPと--idleオプションを使用したデーモンモードのfetchmailでうまくいく場合があります。いくつかの制限が記載されているので、manページをご覧ください。

5
Tomek

より良い解決策(IMHO):メールサーバーを直接配信できる場所に配置します(たとえば、ファイアウォールの背後にある社内サーバーではありません)。

  • メールホスティングサービスまたは何らかの形式のVPSを使用して、自分で実行します
  • ファイアウォールの背後で社内に保持したい場合は、MXをVPNなどを介して社内のメールサーバーと通信できるマシンにします。
3
Sven

親システムで転送を設定することを検討しましたか?これにより、ポーリングの必要性が回避され、IDLEソリューションとその持続的接続も回避されます。マスターサーバーで、リモートサーバーに到達するための何らかの方法を設定します。これは、おそらくリモートマシンに到達するためのカスタム「トランスポート」設定を備えた「エイリアス」データベースを使用する場合があります。

マスターサーバーにエイリアス機能と転送機能がありますか?どのメールトランスポートを実行していますか?

1
Tim Riker