web-dev-qa-db-ja.com

ルールを使用してメールを送信するときにメールヘッダーを変更するにはどうすればよいですか?

Drupal 7 Rules モジュールを使用して特定のイベントでメールをトリガーおよび送信していますが、メッセージが送信される前にメールヘッダーを変更する必要があります。

Drupal 7ルールモジュールを使用して送信される特定の送信メールに「 RFC 5322 で使用される)ヘッダーを追加する適切な方法は何でしょうか」 ?

以下は drupal_mail ()を使用する場合に機能しますが、 Rules を使用する場合にこのフックを適用する方法はわかりません。

function hook_mail($key, &$message, $params) {
    switch ($key) {
        case 'key_name_here':
            $message['Reply-to'] = $params['mail'];
            $message['subject'] = $params['subject'];
            $message['body'] = $params['body'];
            $message['headers']['Reply-To'] = $params['mail'];
            break;    
    }
}
// One note to the above script, lines 4 and 7 seem redundant and likely need work.
1
Citricguy

それでもhook_mailを使用できます。オーバーライドするルールのキーを特定する必要があります。キーは、rules_action_mail()関数$key = 'rules_action_mail_' . $name . '_' . $element->elementId();で設定されます。ここで、nameはルール名、element idはルールの数値IDです。カスタムモジュールの重みが、データベースのシステムテーブルのルールモジュールよりも高いことを確認する必要があります。

2
acouch