我正在尝试使用 php 脚本过滤电子邮件,我想做的是在电子邮件与一组规则匹配时将其处理到数据库中。
规则将使用一组 PHP 字符串并使用 str_replace 或 preg_replace 来制定。
我找到了这个教程,但是当我运行它时,邮件服务器只能接受电子邮件,但我不能再登录和检查我的邮件了,我认为脚本正在吞噬一切并有效地黑洞服务器,所以它是一个部分解决方案,但是不完整。
我要做的阶段是我可以执行脚本,它在需要时运行并写入数据库,但是电子邮件没有到达收件箱,而且也没有人可以登录查看电子邮件,所以我认为该脚本会阻止除接收电子邮件和立即退出之外的任何操作的执行,因此它对于只想根据规则引擎过滤/克隆电子邮件到数据库中的真实电子邮件服务器没有用。
现在要么我写的过滤器类型错误,要么我遗漏了一些东西,如果脚本被禁用,它允许电子邮件继续进入它应该放入的收件箱。我想这就是我错过的部分。
请注意:该脚本必须使用 PHP 运行,因此不需要其他解决方案。我已经知道链接:www.postfix.org/FILTER_README.html 并且我已经阅读了它,但是我不知道如何将其转换为实际工作的 PHP 脚本。似乎我总是在某个时候卡住,所以我对那些给我那个链接并说我应该阅读它的人也不感兴趣。
我这么说的原因是因为我在这里阅读了很多问题,这些问题通常以该链接或替代解决方案结尾,这些都没有帮助,所以如果您的回答是其中之一,请不要回复,我我不感兴趣,除非你想帮我解决我的具体问题,我不想浪费你的时间。
我将直接跳到正题,而不是讨论我对您引用的文章的所有问题。
使用procmail 作为传递代理。
这是一种非常强大的语言,可以让你做各种各样的事情,尤其是将电子邮件复制到邮箱并通过脚本传输它们(包括 PHP - 你只需从标准输入读取,写入标准输出)。
设置并不难,它使这样的任务变得容易。但是,如果您希望围绕此构建复杂的系统,则可能需要阅读 Martin McCarthy 的有关 procmail 的书。
除了编码是 --> thataway(在Stack Overflow 上)这一事实之外,嗯……不。
Postfix 的文档令人难以置信;请参考以下资源以附加外部程序:
邮件递送概览
本地交付手册,“外部命令交付”部分
PIPE DELIVERY 手册- 末日的后缀瑞士军刀。
快乐'fixin'!
您不断被指向 FILTER_README,因为它包含您的答案。你可能读过它,但不理解它。
您有意链接的教程阻止传递消息(甚至这样说)。
为了从过滤器传递消息,您必须通过调用 sendmail(8) 命令将其重新传递给 Postfix。FILTER_README 中清楚地记录了这一点,那里的示例脚本甚至显示它正在完成。