メール通知の登録を無効にする


20

Webで詳細な調査を行い、多くの代替ソリューションも試しましたが、新しいユーザーの電子メール通知を無効にするソリューションは見つかりませんでした。

ユーザー設定では、[訪問者はアカウントを作成できますが、管理者の承認が必要]オプションがオンになり、[訪問者がアカウントを作成するときに電子メールの確認が必要]オプションがオフになります。

何かアイデアはありますか?

回答:


32

関数_user_email_notify()を見ると、'user_mail_' . $op . '_notify'電子メールを送信するかどうかの変数をチェックします。電子メールの確認を無効にしたと仮定すると(そうでなければ、メール通知を無効にすると奇妙になります;))、$ opは'register_no_approval_required'です。したがって、完全な変数名は'user_mail_register_no_approval_required_notify'です。

その変数のユーザーインターフェイスはないようです。ただし、settings.phpで設定して、settings.phpの最後に次の行を追加できます(おそらくsites / default内)。

$conf['user_mail_register_no_approval_required_notify'] = FALSE;

他のメール通知にも同じことができます。他の可能な$op値はリンクされたページにリストされています。


どうもありがとうございます。管理者設定がないと信じることはとても難しいです。
カシムジー

実際、ユーザーの確認が必要なメールを防ぐためのユースケースを見ることができます。HTMLメールを送信したり、ユーザーロールごとに応答を変更したりする場合、システムメールはかなり制限されるため、このワークフローをルールとカスタムメールで引き継ぐことを望んでいます。ありがとう@Berdir。
doub1ejack 14

参考までに、以下の「mailcontrol」モジュールは、この同じソリューションを単純なモジュールにロールしたものです。見落とさないでください。
doub1ejack

8

Mailcontrolモジュールを使用できます。

UIから直接、希望する標準Drupalメールをオン/オフにできます。

Drupal 7がデフォルトで送信するデフォルトのメールを完全に制御できます。

説明

この小さなモジュールは、元のDrupal 7アカウント設定ページを拡張し、すべての標準メールをグローバルにオン/オフする機能を備えています。デフォルトでは、Drupal 7は次のメールをグローバルに無効にするオプションを提供しません。

  • ようこそ(管理者が作成した新しいユーザー)
  • ようこそ(承認待ち)
  • ようこそ(承認不要)
  • パスワードの復元


4

これをカスタムモジュールで使用して、アカウントのアクティベーション設定で行われるように、チェックボックスに設定を追加できます。

function your_module_form_user_admin_settings_alter(&$form, &$form_state) {

  // allow admin to choose if a notification mail is sent to no approval required users
  form['email_no_approval_required']['user_mail_register_no_approval_required_notify'] = array(
    '#type' => 'checkbox',
    '#title' => t('Notify user when account is created.'),
    '#default_value' => variable_get('user_mail_register_no_approval_required_notify', FALSE),
  );
}

4

Drupal 7の場合:

変数テーブルは直接編集できます。名前:user_mail_status_activated_notify値:i:0;

または、template.phpファイルで:

if(variable_get('user_mail_status_activated_notify') == 1){
    variable_set('user_mail_status_activated_notify', 0);
}

1

admin / user / user / createで無効にするチェックボックスがあります。私にとっては、デフォルトで無効になっています。


はい、これは実際に機能するはずですが、匿名登録の場合、自動電子メール通知を送信しないことを意味しました。
-lnunesbr

@Inunesbr「匿名登録」とはどういう意味ですか?
キアムルノ

@kiamlaluno「user / register」で自分でアカウントを作成する訪問者
-lnunesbr

0

Drupal 8が私のために働いています。

次のコードは、登録後に電子メールを送信しません。

/**
 * Implements hook_mail_alter().
 *
 * Don't send any mail during registration.
 */
function mymodule_mail_alter(&$message) {
  if ($message['id'] == 'user_register_no_approval_required' && $message['key'] == 'register_no_approval_required') {
      $message['send'] = FALSE;
      return;
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.