Magento の cronjob を 2 時間ごとに実行するように設定しました。これは、ホストが設定できる最速です。ただし、実際にホストのコントロール パネルに移動して、特定の cronjob の [実行] ボタンをクリックするまで、ニュースレターは送信されません。
私は何を間違えましたか?私のcronパスは次のように設定されています:/bin/sh /usr/www/users/FTP_USER/cron.sh
これは、イベントオブザーバーがコンテキスト(adminhtml、フロントエンド、または場合によってはcrontab)に基づいてロードされるためです。ニュースレター送信オブザーバーはcrontabリストにないため、電子メールを送信できません。
この記事を参照してください:http ://www.aschroder.com/2010/01/magento-events-explained-and-a-few-gotchas-avoided/
私の経験では、cron.sh スクリプトはうまくいきませんでした。したがって、 cron.php を実行するだけです。これには、十分な RAM と適切なタイムアウトで適切にセットアップされている php cli が必要です。
あなたのcrontabで試してください:
* * * * * /usr/bin/php /home/USER/public_html/cron.php >> /home/USER/public_html/var/log/cron.log 2>&1
また、cron ジョブ中に発生したエラーを確認できるように、var/log/cron.php にログ ファイルを保存しています。
これは、何らかの形式のアクセス許可/PATH の問題である可能性が高いと思います。コントロール パネルで何かをクリックしてイベントを手動でトリガーすると、おそらく Apache ユーザー (プラットフォームによっては www-data または同等のユーザー) として実行されます。cron は、おそらくこれとは別のユーザーとして実行されます。
コアの newletters cron を参照していると仮定すると、相対インクルード パスが正しくないMage_Newsletter_Model_Observer::scheduledSend
ことに問題がある可能性はほとんどありません。cwd
これにより、最も可能性の高い原因が残ります。a.) cron ユーザーは cron.sh で実行権限を持っていません。b.) cron ユーザーはサーバー上のメール アプリケーションにアクセスできません。ユーザーの PATH。