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?

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.


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


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

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);
}

1

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


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;
  }
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.