web-dev-qa-db-fra.com

Désactiver la notification d'inscription par e-mail

J'ai fait une recherche approfondie sur le Web et j'ai également essayé de nombreuses solutions alternatives, mais je n'ai trouvé aucune solution pour désactiver la notification par e-mail pour les nouveaux utilisateurs.

Dans mes paramètres utilisateur, j'ai l'option "Les visiteurs peuvent créer des comptes mais l'approbation de l'administrateur est requise" cochée, et l'option "Exiger une vérification par e-mail lorsqu'un visiteur crée un compte" n'est pas cochée.

Avez-vous une idée?

19
lnunesbr

Si vous regardez la fonction _ user_email_notify () , elle vérifie la variable 'user_mail_' . $op . '_notify' s'il doit envoyer un e-mail ou non. En supposant que vous avez désactivé la confirmation par e-mail (sinon, désactiver les notifications par courrier électronique serait bizarre;)), $ op est 'register_no_approval_required'. Le nom complet de la variable est donc 'user_mail_register_no_approval_required_notify'.

Il ne semble pas y avoir d'interface utilisateur pour cette variable. Cependant, vous pouvez le définir dans votre settings.php, en ajoutant la ligne suivante à la fin de settings.php (probablement à l'intérieur des sites/par défaut).

$conf['user_mail_register_no_approval_required_notify'] = FALSE;

Vous pouvez également faire de même pour les autres notifications par courrier électronique; l'autre possible $op les valeurs sont répertoriées sur la page liée.

31
Berdir

Vous pouvez utiliser le module Mailcontrol .

Il vous permet d'activer/désactiver tout courrier standard Drupal que vous souhaitez directement depuis l'interface utilisateur.

Ayez un contrôle total sur les e-mails par défaut envoyés par Drupal 7 hors de la boîte.

La description

Ce petit module étend la page d'origine Drupal 7 paramètres de compte avec la possibilité d'activer/désactiver globalement tous les e-mails standard. Par défaut Drupal 7 ne fournit aucune option pour globalement désactiver les mails suivants:

  • Bienvenue (nouvel utilisateur créé par l'administrateur)
  • Bienvenue (en attente d'approbation)
  • Bienvenue (aucune approbation requise)
  • Récupération de mot de passe
8
Reszli

Dans Drupal 8, l'équivalent de le code donné par Berdir pour le fichier settings.php est le suivant.

$config['user.settings']['notify.register_no_approval_required'] = FALSE;
5
dongjie

Vous pouvez l'utiliser dans un module personnalisé pour ajouter les paramètres dans une case à cocher comme cela se fait dans les paramètres d'activation du compte.

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
Will

Dans Drupal 7:

Vous pouvez modifier directement la table des variables: nom: user_mail_status_activated_notify valeur: i: 0;

ou dans votre fichier template.php:

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

Il y a une case à cocher pour désactiver dans admin/user/user/create. Pour moi, il est désactivé par défaut.

1
Pol Dellaiera

Pour Drupal 8 travaux suivants pour moi.

Le code suivant n'envoie pas d'e-mail après l'inscription.

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