2017-03-06 8 views
0

ローカルimapアカウントに電子メールを直接書き込む必要があるアプリケーションがあります。約100KのIMAPアカウント(maildirファイル)が存在するため、MTA(Postfix、Sendmailなど)は維持しないようにし、MTAの脆弱性は心配する必要はありません。ローカルのMaildirファイル(MTAなし)への直接メール

MTAの助けを借りずにプログラムによってMaildirファイルに直接書き込むことはできますか?

これまでのところ、私はフェムトメールを見てきましたが、シングルユーザマシンでの使用を想定しているので、私のニーズには単純すぎます。また、これを行うが、Pythonが十分に速くここでは100K IMAPアカウントについて話しています。

これをAWSまたはDOインスタンスで行うことを計画しています。アーキテクチャに関する提案も高く評価されます。

答えて

1

ほとんどのIMAPサーバーは、きちんとモジュール化されており、配信エージェントを含んでいます。また、そのようなツールが既に存在する標準のフォルダ形式を共同で使用しています。そここのシナリオでは何のためにMTAを起動するという要件はありません、これは意識的な設計上の決定は間違いなくある(また、などのIMAPサーバのシステムテストがずっと簡単になります!)

のPython mailbox librarymaildir foldersを操作writing toし、そうでない場合をサポートしています。

私は真剣にこのコードはとにかくCPUバウンドになるだろう(ディスクへの書き込みがボトルネックになりがちになる)ので、言語の速度は、おそらく懸念であることを行っていない(と私は持っていない疑い
# Untested, based on example in documentation 
import mailbox 
destination = mailbox.Maildir('/path/to/folder') 
destination.add(message) 

Pythonがユーザー空間のものには遅すぎると判断しました。

あなたが(本当に場合はあなたがする必要があるすべてのはmaildirのフォルダへの書き込みで、おそらく行き過ぎがある)このProcmailの、これを行うためのProcmailの道をタグ付けするので:

:0 
/path/to/folder/ 

最後のスラッシュ(それが残っていれば、別の配信フォーマット(バークレーのfolderはプレーン・ファイル、Procmailのディレクトリの場合はそれ自体のディレクトリ・ベースのフォーマット)が選択されます。

+0

真剣にCPUが使い果たされた場合は、[Received:]ヘッダの追加を削除し、[Received:]ヘッダを削除するために[femtomail.c](https://git.lekensteyn.nl/femtomail/tree/femtomail.c)あなたがCプログラマでなくても、maildirフォルダパスを使った愚かなデフォルトのオプションは、簡単な練習のように思えます。 – tripleee

関連する問題