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