답변:
_user_email_notify () 함수를 보면 변수 'user_mail_' . $op . '_notify'
가 이메일을 보내야하는지 여부를 확인합니다 . 이메일 확인을 비활성화했다고 가정하면 (그렇지 않으면 메일 알림 비활성화는 이상합니다.) $ op is 'register_no_approval_required'
입니다. 따라서 전체 변수 이름은 'user_mail_register_no_approval_required_notify'
입니다.
해당 변수에 대한 사용자 인터페이스가없는 것 같습니다. 그러나 settings.php의 끝에 다음 줄을 추가하여 settings.php에서 설정할 수 있습니다 (아마도 사이트 / 기본값).
$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),
);
}
admin / user / user / create에서 비활성화 할 수있는 확인란이 있습니다. 나에게는 기본적으로 비활성화되어 있습니다.
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;
}
}