首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中使用Procmail?

如何在PHP中使用Procmail?
EN

Stack Overflow用户
提问于 2012-12-07 05:21:22
回答 2查看 1.9K关注 0票数 0

我正在尝试使用procmail向PHP脚本发送电子邮件,这样脚本将检查MySQL数据库,并根据发件人的电子邮件编辑主题行。我相信我已经有了一个可以做到这一点的工作流程:

代码语言:javascript
复制
:0:
* ^To:.*@barrett.com
! '/usr/local/bin/php-5.2 -f $HOME/ticket/emailcustcheck.php'

但是,我不确定procmail是如何执行该命令的。如何将电子邮件传递给PHP脚本,因此,我如何在脚本中引用它?

EN

回答 2

Stack Overflow用户

发布于 2012-12-10 17:26:45

通过管道连接到脚本的正确语法是

代码语言:javascript
复制
:0   # no lock file
* ^To:.*@barrett\.com
| /usr/local/bin/php-5.2 -f $HOME/ticket/emailcustcheck.php  # no quotes, use pipe

!操作将尝试转发到电子邮件地址,但当然,带有PHP解释器路径的长引号字符串不是有效的电子邮件地址。

如果需要锁定(即不允许同时运行此PHP脚本的两个实例),则需要命名一个锁定文件;Procmail在此处无法推断锁定文件的名称,因此您的锁定操作只会产生一条错误消息。如果您不确定,添加一个命名的锁文件是更安全的选择,但是如果您没有并发问题(例如,脚本需要写入数据库,而没有其他进程正在使用该数据库),则不应该这样做,并且可能会降低处理速度。

正则表达式的条件看起来也有些不精确,但我只能推测您可能希望在Cc邮件和直接To:上触发。如果是,请在文档中查找^TO_宏。

该脚本将消息作为其标准输入;它可能会将所有输入行读取到一个数组中,或者拆分成两个数组,以便第一个空行之前的所有内容都放入"headers“数组,其余的放入"body”数组。或者PHP有一些类可以从标准输入中将电子邮件消息读取到对象中。

票数 0
EN

Stack Overflow用户

发布于 2013-06-05 22:24:06

代码语言:javascript
复制
:0 wf
* ^To:.*@barrett\.com
| /usr/local/bin/php-5.2 -f $HOME/ticket/emailcustcheck.php

f告诉procmail你要过滤邮件,也就是更改它。w等待筛选器或程序完成并检查其退出代码。

如果只想处理消息的正文,则必须添加标志b如果只想处理消息的头部,则必须添加标志h

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13752809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档