web-dev-qa-db-ja.com

hook_mailを使用してメールが送信されないようにしますか?

電子メールが送信される直前にアクセスチェック(「送信しない」リストクエリ)を実装しようとしています。メッセージを変更する方法はわかりますが、メッセージを停止するにはどうすればよいですか。

HOOK_mail ($key, &$message, $params) {
   if (TRUE) {
      // -- Stop Message From Being Sent Here -- //
   }
}

break;十分ですか?

3
Citricguy

次のような方法で、hook_mail_alterの代わりに hook_mail からアクセスチェックを実行できます(パラメーターに基づいてデフォルトメッセージを準備し、後で変更します)。

function HOOK_mail_alter(&$message) {
  // can add additional check for particular mails here,
  // by checking the value in $message['id']
  if (TRUE) {
    $message['send'] = FALSE;
  }
}

注:変更を有効にするには、キャッシュをクリアする必要があります。

6
AjitS