Até agora recebemos novos e-mails com a ferramenta getmail .
Isso funciona bem. Existe um cron job que é executado a cada minuto.
Existe uma maneira de obter o correio mais rápido?
Eu vejo duas maneiras:
- Solução 1: execute o cron job a cada 30 segundos
- Solução 2: talvez use IMAP ocioso. Quero dizer uma maneira mais parecida com um daemon, não um CLT que é chamado a cada minuto.
- Solução 3: ???
A solução 1 é simples:
* * * * * getmail; sleep 25; getmail
Melhores soluções são bem-vindas.
Protocolo: IMAP
getmail parece suportar IMAP IDLE. Então você pode escrever um trabalho simples do systemd:
Coloque-o
/etc/systemd/system/getmail-idle.service
e executesystemctl enable --now getmail-idle
.Claro que você pode precisar adicionar coisas como
User=
e parâmetros para getmail que você precisa sob medida para você.fetchmail no modo daemon com a opção IMAP e --idle pode fazer o truque. Por favor, dê uma olhada na página man, pois ela menciona algumas limitações.
Melhor solução (IMHO): Tenha seu servidor de e-mail em uma posição onde possa ser entregue diretamente (por exemplo, não um servidor interno atrás de um firewall).
Você já tentou configurar o encaminhamento no sistema pai? Isso evita a necessidade de sondagem e também evita soluções IDLE e suas conexões persistentes. No servidor mestre, você configura alguma forma de alcançar o servidor remoto. Isso pode usar um banco de dados "alias", talvez com uma configuração personalizada de "transportes" para alcançar a máquina remota.
Você tem capacidade de alias e encaminhamento no servidor mestre? Qual transporte de correio você está executando?