Python 将电子邮件直接发送到本地Maildir文件,无需MTA

Python 将电子邮件直接发送到本地Maildir文件,无需MTA,python,email,procmail,maildir,Python,Email,Procmail,Maildir,我有一个应用程序,需要直接向本地imap帐户发送电子邮件。中间没有MTA(Postfix、Sendmail等),以使其易于维护,也没有需要担心的MTA漏洞,因为将有大约10万个IMAP帐户(maildir文件) 不需要MTA的帮助,是否可以通过编程方式直接写入Maildir文件 到目前为止,我已经看过femtomail,但它对于我的需求来说太简单了,因为它是在单用户机器上使用的。我还看到了一些python模块,它们可以做到这一点,但考虑到我们这里讨论的是10万个IMAP帐户,不确定python是

我有一个应用程序,需要直接向本地imap帐户发送电子邮件。中间没有MTA(Postfix、Sendmail等),以使其易于维护,也没有需要担心的MTA漏洞,因为将有大约10万个IMAP帐户(maildir文件)

不需要MTA的帮助,是否可以通过编程方式直接写入Maildir文件

到目前为止,我已经看过femtomail,但它对于我的需求来说太简单了,因为它是在单用户机器上使用的。我还看到了一些python模块,它们可以做到这一点,但考虑到我们这里讨论的是10万个IMAP帐户,不确定python是否足够快


计划在AWS或do实例上执行此操作。任何关于该体系结构的建议都将不胜感激。

大多数IMAP服务器都是模块化的,包括一个交付代理,和/或协同使用一种标准的文件夹格式,这种工具已经存在。在这种情况下,不需要为任何事情调用MTA,这可以说是一个有意识的设计决策(也使IMAP服务器等的系统测试变得简单多了!)

Python支持并以其他方式进行操作

我严重怀疑这段代码是否会受到CPU的限制(写入磁盘将成为瓶颈),因此语言的速度可能不会成为一个问题(通常,我还没有发现Python对于用户空间的东西来说太慢)

因为您标记了这个Procmail,所以Procmail实现这一点的方法(但是,如果您真正需要做的只是写入maildir文件夹,那么这可能是过分的):


尾随斜杠很重要(如果
文件夹
是普通文件,则省略它选择不同的传递格式——Berkeley,如果是目录,则选择ProMail自己的基于目录的格式)。

如果CPU严重不足,分叉以删除添加的
Received:
头并用maildir文件夹路径替换愚蠢的默认选项似乎是一个简单的练习,即使您不是C程序员。
# Untested, based on example in documentation
import mailbox
destination = mailbox.Maildir('/path/to/folder')
destination.add(message)
:0
/path/to/folder/