【发布时间】:2011-09-11 00:02:53
【问题描述】:
我正在寻找处理传入特定虚拟主机的电子邮件并使用电子邮件数据作为参数调用外部脚本的最佳方法的 fopointers - 基本上是为了允许将电子邮件发送到主机上的某个“私人”电子邮件地址然后自动将某些内容插入该站点数据库。我目前已将 exim 设置为邮件处理程序。
【问题讨论】:
标签: email debian external-process exim
我正在寻找处理传入特定虚拟主机的电子邮件并使用电子邮件数据作为参数调用外部脚本的最佳方法的 fopointers - 基本上是为了允许将电子邮件发送到主机上的某个“私人”电子邮件地址然后自动将某些内容插入该站点数据库。我目前已将 exim 设置为邮件处理程序。
【问题讨论】:
标签: email debian external-process exim
您必须遵循 exim 单文件配置结构。在路由器部分编写您自己的自定义路由器,将电子邮件发送到您想要的 php 脚本。在传输部分编写您自己的自定义传输,以确保使用 curl 传递到所需的脚本。只需在您的/etc/exim.cnf 文件中写入以下配置:
############ROUTERS
runscript:
driver = accept
transport = run_script
unseen
no_expn
no_verify
############TRANSPORT
run_script:
debug_print = "T: run_script for $local_part@$domain"
driver = pipe
command = /home/bin/curl http://my.domain.com/mailTest.php --data-urlencode $original_local_part@$original_domain
mailTest.php 将是您的指定脚本。
【讨论】:
curl 转移似乎不太适合这项任务。
Procmail 是一个很好的通用答案。如果您的需求非常具体,您可以直接从您的.forward(或 Exim 的相应构造——不记得它的具体区别)中挂钩您自己的脚本,但通常,将您自己的脚本包装在一个简单的 .procmailrc 中帮助您避免一堆不确定的电子邮件传递细节,并专注于实际处理。
:0
' ^Subject: secretpassword adduser \/[A-Z]+
| echo "insert $MATCH into users" | mysql -d users
【讨论】: