0

fetchmailを使用してメールを PHP スクリプトに転送 (またはパイプ) する方法を見つけようとしています。私はこれをやったことがなく、正しい軌道に乗っているかどうかさえわかりません。私が読んだことから、メールを転送するには MDA を使用する必要があると思います。MDA としてprocmailを使用しています。

これが私のfetchmailrcファイルです

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

ポインタはありますか?私は正しい方向に向かっていますか?

4

1 に答える 1

1

PHP にパイプするのではなく、PHP スクリプトが出力するアドレスに電子メールを送信しています。レシピが記述したとおりに動作するようにするには、感嘆符 ( !) をパイプ ( ) に変更することをお勧めします。|

Procmail からのエラー メッセージは、間違って呼び出しているか、setuid ビットなどがないことを示しています。私は Fetchmail の専門家ではありませんが、このmda行は怪しいように見えます-d。少なくとも 2 つのフラグが競合することはほとんどありません。そこが問題なのかもしれません。へのパスは.procmailrc、オプションを使用して Procmail によって推測され-dます。次のように、より単純なものを試してください。

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

ところで、割り当てSHELL=/bin/cshは本当に的外れなようです。私の経験では、Procmail を使用しようとしてcshtcshうまくいきません。(とにかく、Csh Programming Considered Harmfulを読んでください。) 自分が何をしているのか正確にわかっている場合は、その理由を説明してください。それ以外の場合は、他のことをする前に取り出してください。

于 2012-05-22T07:36:10.440 に答える