执行命令以选择带有后缀的电子邮件

5 email postfix

我的 Ubuntu 服务器上运行着 Postfix,我想将它配置为在收到某些电子邮件时运行命令。例如,如果我从主题为“todo”的 gmail 帐户向自己发送电子邮件,我希望 Postfix 将邮件正文附加到 /home/brian/todo。

通过阅读 Postfix 文档,我只看到了如何配置规则以拒绝带有错误代码的电子邮件。所以也许 Postfix 不是这项工作的工具,在这种情况下,我很感激对更合适的工具的反馈。

谢谢,布赖恩

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

:0
* ^To.*john@doe.com
* ^Subject.*specialsubject
| ~/bin/extract_email_body.py >> ~/todo
Run Code Online (Sandbox Code Playgroud)

这是 ~/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)
Run Code Online (Sandbox Code Playgroud)

pQd*_*pQd 7

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

username: "|/your/script"
Run Code Online (Sandbox Code Playgroud)

然后运行

postalias /etc/aliases
Run Code Online (Sandbox Code Playgroud)

当电子邮件到达 username@yourdomain.org 时,/your/script 将被执行,并将接收到消息内容 [带有所有标题] 到标准输入中。我恐怕你必须自己检查这个主题。


hay*_*lci 3

您可以使用 procmail 根据主题过滤电子邮件。然后,您可以选择运行任何命令来响应电子邮件,也可以保持不变并将其发送到您的邮箱。

您可以阅读procmail 快速入门,这是一篇很棒的文章。

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

| "/usr/bin/procmail"
Run Code Online (Sandbox Code Playgroud)

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

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