web-dev-qa-db-ja.com

ルールモジュールを使用して、選択したノードの作成者に大量のメールを送信できますか?

Rules モジュールを利用して、CCKフィールドに特定の値があるノードを検索し、見つかったら、それらのノードの作成者にメールを送信するにはどうすればよいですか?

たとえば、新しいCCKフィールドを追加するときに、ユーザーにログインしてプロファイルを更新させたい場合、どうすればよいですか?

3
Kevin

そのためのルールを使用する場合は、CCKフィールドを追加するときに、独自のイベントを作成する必要があります。次に、新しいCCKフィールドが追加されたときにイベントをトリガーするコードを記述し、そのタイプのノードまたはルールで必要なデータをルールに提供する必要があります。

これが機能するために必要なカスタムコーディングの量は、カスタムモジュールでhook_mailを使用してこれを実行するために必要な量よりも多いと思います。また、必要なことを実行するためのルールの構成に問題がある可能性もあります。ルールでデータ型の配列を使用したことはないので、複雑になる可能性もあります。

1
googletorp

ルールと Views Bulk Operations を使用してこれを実現できる場合があります。次のスクリーンキャストがあなたを始めるかもしれません: NodeOneがDrupalを話します:ルール+ VBO、再訪!

1
Craig Hyatt

Content Access Mail モジュールを見てください(開示:作成しました)。プロジェクトページからの詳細は次のとおりです。

これは、特定のノードを表示する権限を持つすべてのユーザーにルールベースの電子メールを送信できるようにするルールモジュールのアクションを提供します。

それはほとんどあなたが望むことをするので、hook_mailの使用についての@googletorpのコメントに続いて、これはあなたがあなた自身のモジュールに向かって最初の一歩を与えるかもしれません。

1
Greg

ここに入力のもう少し: http://www.midwesternmac.com/blogs/jeff-geerling/sending-thousands-automated-sc

ルールを通じて数百または数千の電子メールを直接送信するよりもはるかにスケーラブルなシステムを構築する必要がありました。その方法で(および新しい電子メールが送信されたときにサーバーリソースを過剰に使用するリスクを冒して)代わりに、SimpleNewsモジュールをインストールし、ルールを介していくつかのフックを使用して、cronの実行時にバッチで送信される電子メールをスケジュールしました。

もちろん、数百または数千のメールの規模に達したら、Amazon SESなどの外部リソースの使用を検討し始めるかもしれません。私はあなたがそのレベルに完全ではないと思います:-)

1
geerlingguy

Drupal 7の場合のルールとキューAPIの組み合わせについて書いたばかりの記事は次のとおりです: ルールとキューAPIを使用して大量のメールをバッチ送信する

1
Jide

そのような電子メールを送信したいノード(作成者と共に)の( Views モジュールを使用して)ビューを作成できると思います。このようなビューの作成に成功したら、次のように続けます。

  1. Views bulk operations を使用して、ビューの各結果の一括操作を有効にします。
  2. Rules アクション「メッセージの送信」を使用するルールコンポーネントを作成します。必要に応じて、この「ルールコンポーネント」に「MsgSubject」や「MsgBody」などの名前の2つの「変数」を追加します。そうすることで、メッセージの実際の件名と本文を構成するための「トークン」としてこれらの変数を使用できます。
  3. VBO設定内で、このルールコンポーネントを実行するだけです。その後、このVBOビューを使用する場合、ルールコンポーネントの作成に使用される変数(「MsgSubject」や「MsgBody」など)に必要な値を指定できます。したがって、「Subject」と「Body ""メッセージの送信 "アクション用(これらの変数がない場合、事前定義されたメッセージの送信のみが許可されます)。そして、これはルールコンポーネントのこれらの変数を使用するだけです(メッセージの「件名」と「本文」を実装するため)。これにより、VBOを使用してそのようなメッセージを送信するたびに、メッセージごとに目的の「件名」と「本文」を入力できます。

ルールコンポーネントと組み合わせたVBOの使用に関するその他の図については、次の質問に対する回答を参照してください。

0
Pierre.Vriens