我正在尝试进行一些自定义电子邮件转发。#1 我在使用 qmail 和可选 procmail 的共享服务器上。
我想要完成的是根据时间表对一个地址进行一些自定义电子邮件转发。例如,我有一个每个工作日都在工作的员工的时间表,我有一个 php 脚本,它可以随机选择今天工作的员工的电子邮件地址。
所以我试图在 procmail 中调用该脚本,并在转发行输出结果(这是一个单一的电子邮件地址):
例子:
#Something
LOGFILE=/usr/home/myname/procmail-log
VERBOSE=yes
EXITCODE=99
MAILDIR=/usr/boxes/myname
DEFAULT=/usr/boxes/myname/mybox
SHELL=/bin/sh
MYVAR=$(php -q /usr/home/myname/testemail/emailtester.php)
:0
! $MYVAR
这是行不通的。完全没有。我也试过:
MYVAR=`php /usr/home/myname/testemail/emailtester.php`
以及将其管道输送到前线:
:0
! |php /usr/home/myname/testemail/emailtester.php
我在这里完全脱离了我的元素......我什至尝试不使用procmail,我只是将整个电子邮件从qmail传送到一个php脚本。我需要标题保持完整,就像一个普通的转发一样,这在 PHP 中被证明是困难的,而且有点超出了我的范围。(我设法创建了一个无限的电子邮件循环)所以,我不想再试一次了。
我可以尝试在我从未使用过的 perl 中编写脚本,但我需要可以从 Web 界面管理时间表,或者至少以用户友好的方式进行管理。
在这一点上,任何帮助或建议将不胜感激,谢谢
编辑:
好吧,由于我无法将代码放在评论中,所以我将在这里进行编辑。
现在在我的日志中得到这个:
Folder: /usr/local/bin/php /usr/home/idnani/testemail/emailtester.ph 1679
"rocmail: Executing "/usr/local/bin/php,/usr/home/idnani/testemail/emailtester.php
Could not open input file: /usr/home/idnani/testemail/emailtester.php
当我与 :0fw 一起使用时,我得到:
"rocmail: Executing "/usr/local/bin/php,/usr/home/idnani/testemail/emailtester.php
Could not open input file: /usr/home/idnani/testemail/emailtester.php
procmail: [69907] Thu Jun 16 14:04:17 2011
procmail: Program failure (1) of "/usr/local/bin/php"
procmail: Rescue of unfiltered data succeeded
编辑:想通了!
经过多次反复试验,找到了正确的方法。
根本不要使用管道,你确实需要!前进符号:
最终规则:
:0
! `/usr/local/bin/php -f $HOME/emailtest/emailtester.php`
如此简单......我有点生气,我花了几个小时才弄清楚这一点,感谢大家帮助我指出正确的方向!