2017-03-06 3 views
0

로컬 imap 계정에 전자 메일을 직접 작성해야하는 응용 프로그램이 있습니다. 약 100K 개의 IMAP 계정 (maildir 파일)이있을 것이므로 유지하기 쉽도록 MTA (Postfix, Sendmail 등)가 없으며 걱정할 MTA 취약점이 없습니다.MTA없이 로컬 Maildir 파일에 직접 이메일 보내기

MTA의 도움없이 프로그래밍 방식으로 Maildir 파일에 직접 쓸 수 있습니까?

지금까지 femtomail을 살펴 봤지만 단일 사용자 컴퓨터에서 사용하기 위해 만들어진 것이므로 내 요구 사항에 너무 간단합니다. 또한이 작업을 수행 할 수있는 파이썬 모듈을 보았지만 파이썬이 충분히 빠르지는 확실하지 않습니다. 우리는 여기서 100K IMAP 계정에 대해 이야기하고 있습니다.

AWS 또는 DO 인스턴스에서이 작업을 수행 할 계획입니다. 건축에 대한 제안은 많은 도움이 될 것입니다.

답변

1

대부분의 IMAP 서버는 모듈 식이며 배달 에이전트가 포함되어 있고/또는 이러한 도구가 이미 존재하는 표준 폴더 형식을 공동으로 사용합니다. 가이 시나리오에서 아무것도에 대한 MTA를 호출 할 필요가 없으며, 이것은 틀림없이 의식적인 디자인 결정이다 (도! IMAP 서버 등 많은 간단한의 시스템 테스트를한다)

파이썬 mailbox librarywriting to 그렇지 않으면이 maildir folders를 조작 지원 .

# Untested, based on example in documentation 
import mailbox 
destination = mailbox.Maildir('/path/to/folder') 
destination.add(message) 
내가 심각하게이 코드는 CPU 바운드 어쨌든 될 것입니다 의심

(병목 경향이 디스크에 기록) 그래서 언어의 속도는 아마도 우려 될 수 없습니다 (내가하지 않은 파이썬이 사용자 공간에 너무 느리다는 것을 발견했다.

당신이 (당신이 MAILDIR 폴더에 기록하기 만하면됩니다 모든 진정 경우 아마도 과잉이다)이 프록,이 작업을 수행 할 수있는 프록 방법 태그 이후 : 어디 후행 슬래시가

:0 
/path/to/folder/ 

을 중요한 것은 (folder이 일반 파일 일 경우 버클리, 디렉토리 인 경우 Procmail 자체의 디렉토리 기반 형식 임).

+0

심각하게 CPU가 부족한 경우 [femtomail.c] (https://git.lekensteyn.nl/femtomail/tree/femtomail.c)를 포크하여 'Received :'헤더 추가를 제거하고 maildir 폴더 경로를 사용하는 바보 같은 기본 옵션은 C 프로그래머가 아니더라도 쉽게 연습 할 수 있습니다. – tripleee

관련 문제