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

20

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?

lnunesbr
la source

Réponses:

32

Si vous regardez la fonction _user_email_notify () , elle vérifie 'user_mail_' . $op . '_notify'si la variable doit envoyer un e-mail ou non. En supposant que vous avez désactivé la confirmation par e-mail (sinon, la désactivation des notifications par courrier électronique serait bizarre;)), l'opération $ 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; les autres $opvaleurs possibles sont répertoriées sur la page liée.

Berdir
la source
Merci beaucoup. Il est si difficile de croire qu'il n'y a pas de paramètre administrateur.
qasimzee
En fait, je peux voir un cas d'utilisation pour empêcher les e-mails avec confirmation de l'utilisateur requise. Les e-mails du système sont assez limités si vous souhaitez envoyer des e-mails html ou varier la réponse en fonction du rôle de l'utilisateur, donc je peux voir vouloir reprendre ce flux de travail avec des règles et des e-mails personnalisés. Merci @Berdir.
doub1ejack
Pour info, le module «mailcontrol» ci-dessous est cette même solution intégrée dans un module simple. Ne l'oubliez pas.
doub1ejack
8

Vous pouvez utiliser le module Mailcontrol .

Il vous permet d'activer / désactiver tout courrier Drupal standard 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 des paramètres du compte Drupal 7 avec la possibilité d'activer / désactiver globalement tous les e-mails standard. Par défaut, Drupal 7 ne propose aucune option pour désactiver globalement les e-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
Reszli
la source
4

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),
  );
}
Volonté
la source
4

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);
}
Chris Callender
la source
1

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

Pol Dellaiera
la source
Oui, cela est vraiment censé fonctionner, mais, je voulais dire, en cas d'enregistrement anonyme, n'envoyez pas de notification automatique par e-mail.
lnunesbr
@Inunesbr Que voulez-vous dire par "inscription anonyme"?
kiamlaluno
@kiamlaluno le visiteur qui crée lui-même un compte dans "utilisateur / s'inscrire"
lnunesbr
0

Pour Drupal 8 après le travail 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;
  }
}
vijay
la source