나는 IMAP 서버에서 새 이메일을 읽고 NET::IMAPClient
.MIME::Parser
내 질문은: 새 이메일이 도착하자마자 이 스크립트를 실행하는 가장 좋은 방법은 무엇입니까? cron을 사용하여 스크립트를 주기적으로 실행할 수 있고 몇 초마다 확인할 수도 있지만 더 좋은 방법이 있을 것으로 생각됩니다.
이상적으로는 시스템 이벤트처럼 이메일을 받자마자 조치를 취하는 것이 좋습니다. 이를 달성하기 위해 어떤 일반적인 소프트웨어와 기술을 사용할 수 있습니까? 저는 데비안 시스템을 사용하고 있습니다.
답변1
일반적으로 언급한 것처럼 이메일을 지속적으로 확인하게 됩니다.@조엘데이비스, 일부 푸시 명령을 사용하여 서버를 확장할 수 있습니다.
또한 이메일 서버가 지원하는 경우 IMAP4용 IDLE 확장을 사용할 수 있습니다.
IMAPClient는 IDLE을 기본적으로 지원합니다.
답변2
일반적으로 데이터를 전송하는 프로그램은 "폴링" 또는 "푸시"를 통해 작동합니다. Perl 스크립트를 사용하여 서버에 데이터를 푸시하도록 IMAP 서버를 수정할 수 없는 경우 이벤트를 주기적으로 폴링할 수만 있습니다.
대안 은 각 검사 후에 실행 cron
되도록 Perl 스크립트를 데몬화하는 것입니다 . sleep
이렇게 하면 시간이 절약 execve
되고 폴링 빈도에 따라 TCP 연결을 설정하는 데 걸리는 시간도 절약할 수 있습니다.