Назад | Перейти на главную страницу

Получайте новые письма немедленно

До сих пор мы получаем новые письма с помощью инструмента получить почту.

Это работает хорошо. Есть задание cron, которое запускается каждую минуту.

Есть ли способ получить почту быстрее?

Я вижу два пути:

Решение 1 простое:

* * * * * getmail; sleep 25; getmail

Приветствуются лучшие решения.

Протокол: IMAP

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, которые вам нужны.

fetchmail в режиме демона с IMAP и опцией --idle может помочь. Пожалуйста, взгляните на страницу руководства, так как в ней упоминаются некоторые ограничения.

Лучшее решение (IMHO): разместите свой почтовый сервер в таком месте, где он может быть доставлен напрямую (например, не на внутренний сервер за брандмауэром).

  • Воспользуйтесь услугами почтового хостинга или VPS, чтобы запустить его самостоятельно.
  • Если вы хотите сохранить его за брандмауэром, пусть MX будет машиной, которая может общаться с вашим внутренним почтовым сервером через VPN или аналогичный.

Вы изучали возможность настройки пересылки в родительской системе? Это позволяет избежать опроса, а также решений IDLE и их постоянных соединений. На главном сервере вы настраиваете способ связи с удаленным сервером. Это может использовать базу данных «псевдонимов», возможно, с настраиваемой настройкой «транспортов» для доступа к удаленному компьютеру.

Есть ли у вас возможность псевдонима и пересылка на главном сервере? Какой почтовый транспорт у вас установлен?