我的 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)
试试这个 - 放入 /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 将被执行,并将接收到消息内容 [带有所有标题] 到标准输入中。我恐怕你必须自己检查这个主题。
您可以使用 procmail 根据主题过滤电子邮件。然后,您可以选择运行任何命令来响应电子邮件,也可以保持不变并将其发送到您的邮箱。
您可以阅读procmail 快速入门,这是一篇很棒的文章。
要启用 procmail,请在用户的主目录下放置一个“.forward”文件,并使其内容如下
| "/usr/bin/procmail"
Run Code Online (Sandbox Code Playgroud)
然后在下面写下你的 procmail“食谱”~/.procmailrc
请注意,大多数其他过滤选项(如 sieve)不允许您执行任意命令。
归档时间: |
|
查看次数: |
5889 次 |
最近记录: |