1

私はあなたがイベントと予定をスケジュールし、各予定/イベントの日付と時間を選択できるアジェンダシステムを持っています。

ユーザーは、予定のリマインダーを受け取ることを選択します。リマインダーは、イベント開始の5分前、イベント開始の1時間前、イベント開始の2日前などです。

したがって、ユーザーの予定が今日の午後10時にスケジュールされ、リマインダーが「10分前」である場合、phpに午後9時50分にユーザーに電子メールを送信させる必要があります。今のところ、イベントが始まる前に、5m、10m、30m、1h、2h、5h、12h、1d、2dを送信するようにリマインダーを作成する必要があります。

PHPにユーザーが定義した時間に電子メールを送信させるにはどうすればよいですか?

どうもありがとう。

4

1 に答える 1

1

システムを2つのアプリケーションに分割する必要があります。

  • ユーザーが物事をスケジュールするために使用するアプリケーション。
  • メールを送信するバックエンドアプリケーション。

最初のアプリケーションはスケジュールされたアイテムをデータベースに書き込む必要があり、バックエンドアプリケーションはデータベースから読み取り、電子メールを送信します。

これを構造化できる1つの方法は、スケジュールされたアイテムを次のように格納することです。

ScheduledItems
--------------
ID (int)
Title (string)
EventTime (datetime)
ReminderType (int)
ReminderSent (bool)

ReminderType、あなたが言及したリマインダーのルックアップリストへの外部キーである可能性があります。

イベント開始前の5m、10m、30m、1h、2h、5h、12h、1d、2d

次に、2番目のアプリケーションはcronを介してスケジュールされ、おそらく5分ごとに実行され(これが最も詳細なリマインダー時間でScheduledItemsあるため)、 ReminderSentfalse(まだ送信されていない)をスキャンし、ルックアップテーブルEventTimeのタイムスパン値を引いた値がReminderTypeまたは現在の日時と同じです。

見つかったレコードごとに、リマインダーを送信しReminderSentてtrueに更新します。

于 2013-01-10T02:50:23.317 に答える