メールを送信するためのcroncronジョブ設定があります。次のコマンドを使用して実行されます。
/usr/bin/php -q /var/www/vhosts/domain.com/cron/job.php
ブラウザからphpスクリプトを実行すると、スクリプトは期待どおりに電子メールを送信します。cronジョブで実行すると失敗します。
メールログにエラーはありません。唯一の違いは「from」行にあります。スクリプトがブラウザから実行されると、ログには次のように表示されます。
Jan 25 12:24:39 VMW01 qmail-remote-handlers[1001]: from=sender@domain.com
ただし、cronジョブがスクリプトを実行すると、「from」行は次のようになります。
Jan 25 12:15:01 VMW01 qmail-queue-handlers[1000]: from=anonymous@VMW01.server.net
奇妙なことに、mail()行の5番目のパラメーターを削除すると、cronジョブが電子メールを送信します。
mail($email, $subject, $body, $headers, '-fsender@domain.com');
私はこれで簡単に生きることができますが、パラメーターを削除すると、サーバーによって電子メールが拒否されることがよくあります。これは、パラメーターが設定されていないためだと思います。
なぜこれが起こっているのか、そしてどうすればそれを修正できるのか、何か考えはありますか?解決策を得るために、この質問にさらに詳細を追加させていただきます。