web-dev-qa-db-ja.com

PHPフィルターに頼らずに、ルールによって送信された電子メールにビューを埋め込むにはどうすればよいですか?

標準の「メール送信」アクションを使用して、Rulesモジュールから送信されたメールにビューを埋め込みたいのですが。 Mime MailおよびMail Systemモジュールがインストールされています。ルールの本文に含まれていると、HTMLメールを送信できます。

これに基づいて question を試して Insert View モジュールを試しましたが、これはビューをノードのコンテンツにのみ挿入でき、ルールはエンティティではありませんが、ビューの挿入はできません汎用エンティティをサポートします)。追加してみました[view:view_name=display_name]を私のルールのメッセージ本文に追加しましたが、ビューが表示されませんでした。これが機能していないことを確認するために、「メッセージの表示」アクションを含む別のルールを追加し、そこにビューを埋め込もうとしましたが、これも機能しませんでした。ただし、まったく同じコードをノード本体内に配置すると、ビューが表示されるため、ビューの挿入はルールでは機能しないようです。

Entity Views Attachment は一般的なエンティティをサポートしますが、これはビューを「アタッチ」しますが、私がしようとしているのは、次のようなルールの電子メールメッセージ本文にビューを埋め込むことです。

MY TEXT-HEADER

組み込みビュー

私のテキスト-フッター

また、これは1通のメールに対してのみ行う必要があるので、可能であれば、ルールにビューを埋め込むためのカスタムトークンのようなものを追加したいのですが、どうすればよいかわかりません。

1
Patrick Kenny

Insert ViewMime Mail および Mail System モジュールを使用して、ビューを電子メールで送信できます。
上記のモジュールをインストールして有効にした後、メールシステムの設定とテキスト形式の設定を構成する必要があります。

  • メールシステム設定で、
    すべての設定を変更して、メールを送信するためにMimeMailSystemクラスを使用します。
    注:サイト全体のデフォルトのMailSystemInterfaceクラスはMimeMailSystem

  • テキスト形式の設定で、
    有効必要な各テキスト形式でビューフィルターを挿入

あなたにとっての問題はルールではありません。メールシステムの設定である必要があります。これがうまくいくことを願っています。

4
siddhu151dj

最終的に、テーマディレクトリのMime Mailテンプレートでviews_embed_view()を使用してこれを解決しました。

具体的には、関連するメール用に_mimemail-message--key.tpl.php_のようなファイルを作成しましたkeys次に、関連するviews_embed_view()およびその他のPHPコードを追加しましたテンプレートファイル。

1
Patrick Kenny

私のサイトには term-by-termモジュールABT 、(データへのアクセスを制御する適切なモジュール)があります。これは、メールにビューを挿入すると、特定のアカウントでログインしていないユーザーがコンテンツにアクセスできなくなることを意味します権限/ロール/ abtなど、私のメールは役に立たない、空白のメールになります。これは私がやったことです:

私は views rules module をインストールし、「ビューの電子メールデータを作成して送信する」というルールを作成しました。私のルール内で、3つのルールビュー、1つのメインビューを実行してUIDを取得する必要がありました。電子メールで送信され、他の2つのビューがメインビュー内にネストされ、これを実現します ここを見る 、メインビューループ内に、2つのTEXT空の変数を追加しました(各子ビュー、ルールごとに1つ、すべてのデータにアクセス可能) views-rulesによって送信されたトークンに格納され、cutomモジュールを使用してビューを1行ずつ作成しました hook_rules_action_info() を使用して、すでにフォーマットされている各行を返します。 :set-a-data-value:[my-text-var] = [my-text-var] [my-row](私はこれを2回行った、var1とvar2)、今はメインビューループの内側、ただし外側私の電子メールの本文コンテンツの内部ビューループすべての行を含む変数を追加しました[my-text-var1] [my-text-var2]、完了!美しい作品。

注:私はSMTPメールサーバーを使用しているため、MIMEメールや類似のモジュールを使用できません。私のメールはHTMLメールのように見えますが、単なるテキストです。rules_custom_action_infoから$ var []配列を再調整できることに注意してください()

0
pinueve