カスタムメール転送を行おうとしています。#1qmailとオプションでprocmailを使用している共有サーバーを使用しています。
私が達成しようとしているのは、スケジュールに基づいた1つのアドレスのカスタム電子メール転送です。たとえば、各平日に作業する従業員のスケジュールがあり、今日作業しているランダムな従業員の電子メールアドレスを選択する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`
とても単純です...私は少し怒っていますこれを理解するのに何時間もかかりました、私を正しい方向に向けるのを手伝ってくれたみんなに感謝します!