用postfix执行select电子邮件的命令

我有我的Ubuntu服务器上运行的Postfix,我想configuration它运行一个命令,当它收到某些电子邮件。 例如,如果我通过gmail帐户发邮件给自己,主题是“todo”,我希望Postfix将邮件正文附加到/ home / brian / todo。

从阅读Postfix文档,我只看到如何configuration规则拒绝错误代码的电子邮件。 所以也许Postfix不是这个工作的工具,在这种情况下,我会很感激一个更合适的工具的反馈。

谢谢,Brian

[更新:20090616]扩展选定的答案,这里是我的.procmailrc:

:0 * ^To.*[email protected] * ^Subject.*specialsubject | ~/bin/extract_email_body.py >> ~/todo 

这里是〜/ bin / extract_email_body.py:

 #!/usr/bin/python import sys import email def print_plain_text_parts(msg): if msg.is_multipart(): for part in msg.get_payload(): print_plain_text_parts(part) elif msg.get_content_type() == 'text/plain': print(msg.get_payload().strip()) msg = email.message_from_file(sys.stdin) print_plain_text_parts(msg) 

您可以使用procmail根据主题过滤电子邮件。 然后,您可以select运行任何命令来回复电子邮件,也可以保持原样,并将其发送到您的邮箱。

你可以阅读procmail快速启动这是一个很好的文章。

要启用procmail使用,请在用户的主目录下放置一个“.forward”文件,并将其内容像这样

 | "/usr/bin/procmail" 

然后在~/.procmailrc下面写下你的procmail“食谱”

请注意,大多数其他过滤选项(如sieve)将不允许您执行任意命令。

试试这个 – 放入/ etc / aliases:

 username: "|/your/script" 

然后运行

 postalias /etc/aliases 

当电子邮件来到[email protected] /你的/脚本将被执行,并将接收消息的内容[所有标题]到标准input。 我很害怕你必须通过你的自我检查主题。

如果你只想要一些电子邮件到一个给定的地址来触发一个命令(根据他们的主题或其他),和其他人要作为普通的电子邮件交付,你将不得不使用procmail如上所述。 使用/ etc / aliases将导致发送到该地址的每个消息都会调用指定的命令(并且不会通过本地传递机制传递)。