【问题标题】:How to forward emails to PHP script?如何将电子邮件转发到 PHP 脚本?
【发布时间】:2012-05-22 02:18:36
【问题描述】:

我试图弄清楚如何使用fetchmail 将电子邮件转发(或通过管道传输)到 PHP 脚本。我从来没有这样做过,甚至不确定我是否走在正确的轨道上。从我读过的内容来看,我认为我需要使用 MDA 来转发邮件。我使用 procmail 作为我的 MDA。

这是我的 fetcmailrc 文件

set daemon 150
set logfile /local/web/sites/sitename/mail/fetchmail.log
poll blahblah with proto IMAP
user Username there with password userpassword is Username here
ssl
fetchall
no rewrite
mda "/usr/bin/procmail -d Username -f %F -d %T $HOME/.procmailrc";

这是我的 procmailrc 文件。您可以在底部看到我正在尝试将电子邮件传送到 PHP 脚本。

SHELL=/bin/csh
DEFAULT=/var/mail/Username/ 
MAILDIR=/var/mail/Username/    

:0
! `/usr/local/bin/php -f /local/web/sites/stack/htdocs/bin/catchmail.php`

我运行 fetchmail 并且转发(到 PHP 的管道)不起作用。我的 fetchmail.log 说:

procmail:  Insufficient prvileges
procmail:  Unknown user

有什么建议吗?我是否朝着正确的方向前进?

【问题讨论】:

    标签: php procmail email-forwarding fetchmail


    【解决方案1】:

    您不是通过管道传输到 PHP,而是向您的 PHP 脚本输出的地址发送电子邮件。您可能希望将感叹号 (!) 更改为管道 (|),以便配方执行您描述的操作。

    来自 Procmail 的错误消息表明您调用它不正确,或者它缺少 setuid 位或类似的东西。我不是 Fetchmail 专家,但 mda 行看起来很可疑——您至少不希望有两个冲突的 -d 标志。也许这就是问题所在。 .procmailrc 的路径将由 Procmail 使用 -d 选项推断。尝试使用更简单的方法,例如:

    mda "/usr/bin/procmail -f %F -d %T"
    

    顺便说一句,分配SHELL=/bin/csh 似乎真的不合时宜。根据我的经验,尝试将 cshtcsh 与 Procmail 一起使用根本行不通。 (无论如何,请阅读Csh Programming Considered Harmful。)如果你确切地知道你在做什么,请解释为什么你有它。否则,在你做任何其他事情之前把它拿出来。

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 2011-05-29
      • 2016-03-30
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2020-05-13
      • 2012-09-12
      • 1970-01-01
      相关资源
      最近更新 更多