2012-07-31 4 views
1

이제 새 메일이 도착할 때 IMAP 서버에 쿼리하여 클라이언트에 알리는 프로그램 (데몬)을 작성하려고합니다. 수천 개의 전자 메일 계정이 있으므로 효율적이고 쉽게이 작업을 수행하는 방법을 알고 싶습니다.많은 계정이있을 때 IMAP 서버에서 새 메일을 쿼리하는 방법

제 생각에는 두 가지 가능한 해결책을 알고 있습니다.

  • 쿼리 이메일은 '여론 조사'스타일을 하나 하나, 계정
  • 사용 IMAP 유휴 확장 및 이벤트 기반의 I/O (는 epoll) reference

내가 장점과 단점을 알고 싶어요 두 솔루션의

나는 또한 어떤 라이브러리 (C, C++, PHP, Python)도 그런 것을 할 수 있는지 알고 싶다. 또는 어떻게하면 혼자서이 작업을 수행 할 수 있습니다.

또는 세 번째 솔루션?

+0

물론 모든 언어로 된 라이브러리는 imap 서버에서 작동하는 코드를 제공합니다. "imap "에 대한 Google. – arkascha

+0

Python에는 imaplib이 있지만 IDLE을 지원하지 않습니다. 제 3자인 'imaplib2'가 있습니다. – Max

답변

0

imap 서버의 경우 세 번째 옵션이있을 수 있습니다. 이 경우 프로토콜 자체를 무시하고 변경 사항에 대해 서버 데이터베이스 자체를 모니터링 할 수 있습니다. 그것은 전체 통신 레이어를 생략하기 때문에 훨씬 더 효율적입니다.

+0

imap 서버는 Gmail 또는 다른 많은 서버 일 수 있습니다. – jjyao

1

IMAP IDLE의 장점은 오버 헤드를 줄이고 응답 가능성을 높일 수 있습니다.

폴링의 장점은 IDLE이 모든 서버에서 지원되는 것은 아니지만 모든 서버에서 본질적으로 지원된다는 것입니다.

라이브러리의 경우 @Max는 Python에서 imaplib 및 imaplib2를 지적합니다. 나는 당신이 언급 한 다른 언어들이 비슷한 라이브러리를 가지고 있다고 확신한다.

세 번째 옵션은 IMAP 라이브러리 대신 context.io을 사용할 수 있습니다.

관련 문제