2010-11-18 4 views
4

응용 프로그램 용 전자 메일을 통한 응용 프로그램 메시징 실험. 이미 SMTP 서버를 만들었지 만 중앙 집중식 배달 메커니즘이 없습니다. 적절한 전달 메커니즘을 매우 쉽게 만들 수 있지만 프로토콜 표준을 사용하려고합니다. 나는 HTTP, FTP 또는 SOAP에 관심이 없으며 메일 프로토콜에만 관심이있다.Python으로 작성된 POP3 서버 또는 IMAP 서버의 예가 필요합니다.

저는 파이썬 예제를 위해 그물을 둘러 보았습니다. 지금까지는 행운이 없었습니다. 이메일 시스템을 통한 비동기 전달이 애플리케이션 간의 통신에 대한 실행 가능한 접근 방식인지 확인하기 위해, 지금까지만의 기술 분야 연구로서 너무 많은 시간과 노력을 들이고 싶지 않습니다. 나는 센드 메일 솔루션에 대해 알고 있으며, 솔루션은 파이썬 솔루션으로 가득 채워야하며, 가능하다면 "배터리"를 사용하거나, 실제로 가지고있는 경우에는 트위스티드 (Twisted)를 사용해야한다는 점에서 관심이 없다.

지금까지 살펴본 두 가지 표준은 IMAP 및 POP뿐입니다. 나는 아직도 우리가 메일 전송과 배달에 대해 두 가지 프로토콜이 필요하다는 것을 믿을 수 없다. 두 가지를 하나씩 (프로토콜은있다)하는 것이 있다면, 나는 그것을 조사하는 것이 가장 행복 할 것이다.

추가 조사 후, 나는

은 POP/IMAP 서버 포기 업데이트의 모든 조금이 어떤 도움이 좋을 것 유일한 실행 가능한 옵션이 꼬여 것이라고 생각 매우 적은 보상으로 너무 많은 일을합니다. 그러나 이메일을 IMAP4로 제공하고 SMTP로 발송하는 "기성품"서버 솔루션을 사용했습니다. 이제 알게되었으므로 이메일을 통한 응용 프로그램 서비스에 대한 조사를 계속할 것입니다. 지금까지 RSS 피드를 다운로드하고 HTML 형식으로 전자 메일로 보내는 응용 프로그램을 만들었습니다. 전자 메일은 Python으로 작성된 서버 응용 프로그램에서 내가 관심있는 내용으로 필터링됩니다. 다음 단계는 서버와 통신하는 DSL 언어로서 이메일을 통한 텔넷과 조금 다릅니다. 재미 있어야합니다. 그 후 다중 응용 프로그램 간의 전자 메일을 통한 RPC.

답변

4

편집 : POP3 서버의 간단한 예는 다음에서 찾을 수 있습니다. http://code.activestate.com/recipes/534131-pypopper-python-pop3-server/ 메시지 전달 메커니즘을 바꾸어야하지만 어쨌든해야합니다. Twisted를 사용하는 IMAP 서버 구현의 경우 https://github.com/davglass/twimapd을 참조하십시오.

이메일을 원한다면 SMTP, POP 및 IMAP이 필요합니다. 그것이 정의에 의한 이메일입니다.

실제로 배달하려면 SMTP로 충분해야합니다. POP/IMAP은 검색 용이며 응용 프로그램이 항상 서로 직접 연결할 수있는 경우에는 그다지 유용하지 않습니다. http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol

+0

감사합니다. 그래도 질문을 놓쳤습니다. POP 또는 IMAP 용 파이썬 예제가 있습니까? – WeNeedAnswers

+0

응답에 +1을주세요. 나는 twimapd를 확인했지만 트위터 메시지를 전달하고 실제로 "적절한"IMAP 서버를 사용하지 않았다. 제대로 작동하려면 약간의 작업이 필요합니다. – WeNeedAnswers

1

지수가 트위스트를 기반으로 이메일 지원을 포함하는 메시징 서버입니다 : 특별히 이메일을 사용할 필요가없는 경우

, 당신은 XMPP (재버)와 같은 다른 프로토콜을 조사 할 수 있습니다. 몇 년 전 새로운 데이터베이스 계층에 대한 개발이 시작되었고 가장 최신 버전은 SMTPPOP3을 지원합니다. 하지만 이전 버전은 IMAP4을 지원합니다.

+0

감사합니다. – WeNeedAnswers

+0

0.30, 메일 서버의 초기 단계입니다. 나는 오픈 소스 "선반에서"떨어져있을 것이라고 생각합니다. 내가 처음에는 파이썬 서버 였고, 플러그 인 등을 넣을 수있었습니다. 그래서 찾을 수 없었습니다. 그래서 제 자신을 쓸 것입니다. SMTP 비트는 "건전지"로되어 버렸지 만, IMAP/Pop은 너무 번거 롭다. – WeNeedAnswers

2

저는 응용 프로그램 통신을위한 간단한 전자 메일 기반 메시지 큐를 작성했습니다. 여기에서 세부 정보를 찾을 수 있습니다 http://blog.bootstraptoday.com/2010/11/28/really-simple-python-message-queue/

기본 아이디어는 입니다. 1. smtpd.SMTPServer에서 클래스를 파생시킵니다. 2. 'process_message'메소드를 대체하십시오. 3. 'process_message'에서 스레드를 시작하십시오. 4. 스레드 함수 내에서 메시지 내용을 읽고 작업을 실행하십시오. 5. 메시지 내용은 단순한 JSON 개체입니다. 6. 클라이언트 코드는 간단합니다. 클라이언트는이 로컬 SMTP 서버에 '전자 메일'을 보내면됩니다. 이 전자 메일의 내용으로 JSON 형식으로 인코딩 된 작업 매개 변수를 보냅니다. 따라서 클라이언트는 간단한 쉘 스크립트가 될 수 있습니다.

모두 40-50 줄의 파이썬 코드입니다. 당신이 Lamson 플레이 (선택 사항 + Cyrus) Postfix와 함께 백업 할 같이

다소 비슷한 생각하지만 훨씬 더 정교한 구현 체크 Lamson : Deferred Processing To Queues

1

보인다.

+1

링크가 잘못되었거나 프로젝트가 종료되었습니다. –

+0

사실, 램슨 프로젝트는 [2013 년 3 월 이후로 죽은 것으로 보인다] (https://github.com/zedshaw/lamson). 대신 포커스는 [Mailman3] (http://wiki.list.org/Mailman3), 특히 [Mailman Core] (https://pypi.python.org/pypi/mailman)쪽으로 이동 한 것 같습니다. – Amir

관련 문제