回答:
関数_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
値はリンクされたページにリストされています。
Mailcontrolモジュールを使用できます。
UIから直接、希望する標準Drupalメールをオン/オフにできます。
Drupal 7がデフォルトで送信するデフォルトのメールを完全に制御できます。
説明
この小さなモジュールは、元のDrupal 7アカウント設定ページを拡張し、すべての標準メールをグローバルにオン/オフする機能を備えています。デフォルトでは、Drupal 7は次のメールをグローバルに無効にするオプションを提供しません。
- ようこそ(管理者が作成した新しいユーザー)
- ようこそ(承認待ち)
- ようこそ(承認不要)
- パスワードの復元
Drupal 8では、settings.phpファイル用にBerdirから提供されたコードに相当するものは次のものです。
$config['user.settings']['notify.register_no_approval_required'] = FALSE;
これをカスタムモジュールで使用して、アカウントのアクティベーション設定で行われるように、チェックボックスに設定を追加できます。
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),
);
}
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;
}
}