Recebendo e-mails via IMAP e analisando com um script com atraso mínimo

Recebendo e-mails via IMAP e analisando com um script com atraso mínimo

Eu tenho um script Perl que usa NET::IMAPCliente MIME::Parserque simplesmente lê novos e-mails de um servidor IMAP e salva todos os anexos em disco.

Minha pergunta é: qual a melhor forma de executar esse script assim que houver um novo email? Posso usar o cron para executar o script periodicamente, posso até verificar a cada poucos segundos, mas suspeito que haja uma maneira melhor.

Idealmente, eu agiria imediatamente ao receber um e-mail, como um evento do sistema. Quais são os softwares e técnicas comuns para conseguir isso? Estou usando um sistema Debian.

Responder1

Em geral, você continua verificando e-mails, a menos que, conforme mencionado por@JoelDavis, o servidor pode ser estendido com algum comando push.

Além disso, se o seu servidor de e-mail suportar, você poderá usar a extensão IDLE para IMAP4:

O IMAPClient possui suporte nativo para IDLE:

Responder2

Em geral, os programas que transferem dados operam por “poll” ou “push”. A menos que o servidor IMAP possa ser modificado para enviar os dados ao servidor com o script perl nele, você só poderá pesquisar eventos periodicamente.

Uma alternativa cronseria apenas daemonizar o script perl para que ele fosse executado sleepapós cada verificação. Isso economiza execvee dependendo da frequência com que você pesquisa, você pode até economizar o tempo necessário para estabelecer a conexão TCP

informação relacionada