web-dev-qa-db-ja.com

Drupalがすでに送信されているメールを再送信する方法は?

ユーザーがサイトで予約を完了したとき、またはこの後に予約を変更したときに発生するメールにテーマを設定する必要があります。 Drupalがすでに送信したメールを再送信する方法はありますか?これにより、新規予約を作成したり、既存の予約を編集したりする必要がなくなります。

3
Evanss

ステップ1:これらすべての予約のビューを作成する

まず、そのような電子メールを再送信するすべての予約のビューを作成する方法を考えます( Views モジュールを使用)。

手順2:電子メールを送信するためのルールコンポーネントを作成する

ステップ3で実際に電子メールを送信するために使用される Rules コンポーネントを作成します。作成するそのようなルールコンポーネントの例を次に示します。

{ "rules_send_booking_email" : {
    "LABEL" : "Send Booking eMail",
    "PLUGIN" : "action set",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "USES VARIABLES" : { "user_to_notify" : { "label" : "User to be notified", "type" : "user" } },
    "ACTION SET" : [
      { "mail" : {
          "to" : [ "user-to-notify:mail" ],
          "subject" : "Some information about your booking",
          "message" : "This is an update about your booking with reference [user-to-notify:field_about_some_booking] ...",
          "from" : "[site:mail]",
          "language" : [ "" ]
        }
      }
    ]
  }
}

マシン名(たとえば)field_about_some_bookingを使用して「ユーザー」エンティティに追加されたフィールドを使用(参照)します。使用可能な任意のフィールド名に自由に適応できます。または、このフィールドが関連している可能性がある「ユーザー」の代わりに、他のエンティティ(たとえば、予約に関するノード?)を使用します。必要に応じて、上記のルールコンポーネントを(ルールのエクスポート形式で)独自の環境に(コピーと貼り付けにより)インポートできますが、フィールドのマシン名が使用可能なものと一致していることを確認してください(それ以外の場合、インポートは失敗します) )。

明らかに、Subjectおよびメールの内容はレビュー/チューニングが必要な場合がありますが、他のを使用することもできますFrom電子メールID。

ステップ3:VBOを関与させて、実際にすべての電子メールをトリガーする

ステップ1から Views Bulk Operations (= VBO)ビューにビューを変換します。そして、実際のVBO「操作」を実行します Rules Componentを実行しますステップ2で作成した。

方法がよくわからない場合は、 VBOでのルールコンポーネントの使用 "に関するビデオをご覧ください。さらに知りたい場合は、次の" 複数のパラメーターを持つルールコンポーネント "ビデオ。

注意:処理する必要があるサイズ(ボリューム)は、別の(追加の)課題(メモリ要件など)になる場合があります。そのため、 " VBO設定の詳細 "についてのビデオもご覧になることをお勧めします。VBOを使用して一度にすべてを処理したくなる前に...

ハッピー [〜#〜] vbo [〜#〜] -ing while Rules -ing!

0
Pierre.Vriens