web-dev-qa-db-ja.com

hook_mailが機能しませんか?

私はこれらの2つの関数を持っています。最初の関数はdrupal_mail()関数を介してメールを送信することです:

function example_function_name($what) {
  drupal_mail('MYMODULE', 'some_mail_key', '[email protected]', language_default());
}

そして2番目はhook_mail関数です:

function MYMODULE_mail($key, $message, $params){
    switch ($key){
        case 'some_mail_key': 
            $message['subject'] = 'test subject';
            $message['body'] = 'test body message';
            break;
    }
}

しかし、件名も本文メッセージもない空白の電子メールをスパムで受信します。ここに何か足りないものはありますか?

前もって感謝します。

5
Boussetta moez

hook_mailは、参照によりメッセージを受け取ることになっています。あなたがそれをする方法、あなたはローカルコピーを修正している、そしてあなたの修正は決して関数の本体を離れることができない。次のようになります。

function MYMODULE_mail($key, &$message, $params){
    switch ($key){
        case 'some_mail_key': 
            $message['subject'] = 'test subject';
            $message['body'] = 'test body message';
            break;
    }
}

この小さなアンパサンドがすべての違いを生み出しています。省略できません。 APIが参照引数を使用してフックを定義した場合は、それを参照引数にしておくか、問題が発生する可能性があります。

7
Mołot