Desativar registro de notificação por email

20

Fiz uma pesquisa profunda na web e também tentei muitas soluções alternativas, mas não encontrei nenhuma solução para desativar a notificação por email para novos usuários.

Nas configurações do usuário, tenho a opção "Visitantes podem criar contas, mas é necessária a aprovação do administrador" marcada e a opção "Exigir verificação por email quando um visitante cria uma conta" não marcada.

Você tem alguma ideia?

lnunesbr
fonte

Respostas:

32

Se você olhar para a função _user_email_notify () , ela verifica a variável 'user_mail_' . $op . '_notify'se deve enviar um email ou não. Supondo que você tenha desativado a confirmação por email (caso contrário, desativar as notificações por email seria estranho;)), o $ op é 'register_no_approval_required'. Portanto, o nome completo da variável é'user_mail_register_no_approval_required_notify' .

Não parece haver uma interface de usuário para essa variável. No entanto, você pode configurá-lo no seu settings.php, adicionando a seguinte linha no final do settings.php (provavelmente dentro de sites / padrão).

$conf['user_mail_register_no_approval_required_notify'] = FALSE;

Você também pode fazer o mesmo para outras notificações por email; os outros $opvalores possíveis estão listados na página vinculada.

Berdir
fonte
Muito obrigado. É tão difícil acreditar que não há configuração de administrador.
qasimzee
Na verdade, vejo um caso de uso para impedir que os e-mails com confirmação do usuário sejam necessários. Os e-mails do sistema são bastante limitados se você deseja enviar e-mails em html ou variar a resposta por função do usuário, para que eu possa querer assumir esse fluxo de trabalho com Regras e e-mails personalizados. Obrigado @Berdir.
Duvida # javascript (
Para sua informação, o módulo 'mailcontrol' abaixo é a mesma solução em um módulo simples. Não a ignore.
Duvida # java
8

Você pode usar o módulo Mailcontrol .

Ele permite que você ative / desative qualquer correio Drupal padrão que você desejar diretamente da interface do usuário.

Tenha controle total sobre os e-mails padrão enviados pelo Drupal 7 imediatamente.

Descrição

Este pequeno módulo estende a página original de configurações da conta Drupal 7, com a capacidade de ativar / desativar globalmente todos os e-mails padrão. Por padrão, o Drupal 7 não oferece opção para desativar globalmente os seguintes emails:

  • Bem-vindo (novo usuário criado pelo administrador)
  • Bem-vindo (aguardando aprovação)
  • Bem-vindo (não é necessária aprovação)
  • Recuperação de senha
Reszli
fonte
4

Você pode usar isso em um módulo personalizado para adicionar as configurações em uma caixa de seleção, como é feito nas configurações de ativação da conta.

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),
  );
}
Vai
fonte
4

No Drupal 7:

Você pode editar a tabela de variáveis ​​diretamente: name: user_mail_status_activated_notify value: i: 0;

ou no seu arquivo template.php:

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

Há uma caixa de seleção para desativar em admin / user / user / create. Para mim, está desativado por padrão.

Pol Dellaiera
fonte
Sim, isso realmente deve funcionar, mas, em caso de registro anônimo, não envie uma notificação automática por email.
Lnunesbr
@Inunesbr O que você quer dizer com "registro anônimo"?
kiamlaluno
@kiamlaluno o visitante que cria uma conta por si só em "user / register"
lnunesbr
0

Para Drupal 8, após o trabalho para mim.

O código a seguir não envia um email após o registro.

/**
 * 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;
  }
}
vijay
fonte