私のサイトに関する特定の統計を含むビューを含む電子メールを私に送信するルールコンポーネントがあります。
このメールを毎日深夜に送信したいのですが。
ルールは次のようになります。
コンポーネント:アクションセット
次に、深夜に手動でルールをトリガーし、ルールが再度評価されるのを待ちました。これは最初の数日間は機能しましたが、電子メールが午前0時ではなく午前3または4に到着するようになりました。毎日同じ時刻に(または毎日できるだけ同じ時刻に)電子メールを送信したいのです。これを行う方法はありますか?
タイトルの元の質問に最後に答えるには、たとえば、次のように書くことで、特定の時間にルールを実行できます。
today + 9 hour
「今日」は常に0:00:00の実際の日であり、「+ X時間」はこれに任意の時間数を追加します。 「時間」は単数で書かれていることに注意してください。その他のキーワードには、「月」、「週」、「日」、「分」、「秒」などがあります。キーワードを組み合わせることができます。さらに多くの機能があります。詳細については、このページを参照してください。
これはどう:
「Scheduled Evaluation Date」セクションで時間を設定しているときに、それを「直接入力」から「選択モード」に変更し、「PHP評価」のオプションが表示される場所までスクロールします
以下に貼り付けます。
<?php
$midnight = strtotime('midnight');
echo date("Y-m-d h:i:s", $midnight);
?>
これは '2013-03-25 12:00:'のようなものを返すはずです//これは今日のために返されるものです!
Phpブラケットを含める必要があります。 strtotime()関数は現在の日付の深夜0時を返すはずなので、うまくいくはずです。これは実行中のcronに基づいているため、正確ではなく、真夜中を少し過ぎて評価されるはずであり、「当日の真夜中」の日が正確に必要なものになるはずです。多分あなたはこれをより良くするphp Tweakを見つけることができます...
とにかく、それが機能するかどうかをお知らせください!
私はあなたがより確実に望むことをするかもしれないモジュールを書きました:
https://www.drupal.org/project/rules_onceperday
ルールイベントはcronによってトリガーされますが、イベントが発生する時間を指定でき、その時間の後にcronが最初に実行されるときに実行されます。
イベントがトリガーされる時刻を指定するだけでなく、イベントを実行できる曜日を指定できる曜日の条件もあります。