Deaktivieren Sie die Registrierungs-E-Mail-Benachrichtigung

20

Ich habe intensiv über das Internet recherchiert und auch viele alternative Lösungen ausprobiert, aber ich habe keine Lösung gefunden, um die E-Mail-Benachrichtigung für neue Benutzer zu deaktivieren.

In meinen Benutzereinstellungen ist die Option "Besucher können Konten erstellen, aber Administratorgenehmigung ist erforderlich" und die Option "E-Mail-Bestätigung erforderlich, wenn ein Besucher ein Konto erstellt" nicht aktiviert.

Hast du irgendeine Idee?

lnunesbr
quelle

Antworten:

32

Wenn Sie sich die Funktion _user_email_notify () ansehen , überprüft sie die Variable, 'user_mail_' . $op . '_notify'ob eine E-Mail gesendet werden soll oder nicht. Angenommen, Sie haben die E-Mail-Bestätigung deaktiviert (andernfalls wäre das Deaktivieren von E-Mail-Benachrichtigungen seltsam;)), lautet das $ op 'register_no_approval_required'. Der vollständige Variablenname lautet also 'user_mail_register_no_approval_required_notify'.

Es scheint keine Benutzeroberfläche für diese Variable zu geben. Sie können es jedoch in Ihrer settings.php einstellen, indem Sie die folgende Zeile am Ende von settings.php einfügen (wahrscheinlich innerhalb von sites / default).

$conf['user_mail_register_no_approval_required_notify'] = FALSE;

Sie können dasselbe auch für andere E-Mail-Benachrichtigungen tun. Die anderen möglichen $opWerte sind auf der verlinkten Seite aufgelistet.

Berdir
quelle
Ich danke dir sehr. Es ist so schwer zu glauben, dass es keine Administratoreinstellungen gibt.
Qasimzee
Tatsächlich kann ich einen Anwendungsfall zum Verhindern von E-Mails mit einer erforderlichen Benutzerbestätigung sehen. Die System-E-Mails sind ziemlich begrenzt, wenn Sie HTML-E-Mails senden oder die Antwort nach Benutzerrolle variieren möchten, sodass ich feststellen kann, dass ich diesen Workflow mit Regeln und benutzerdefinierten E-Mails übernehmen möchte. Danke @Berdir.
doub1ejack
Zu Ihrer Information, das unten stehende Mailcontrol-Modul ist dieselbe Lösung, die in einem einfachen Modul zusammengefasst ist. Übersehen Sie es nicht.
Doub1ejack
8

Sie können das Mailcontrol- Modul verwenden.

Sie können damit alle gewünschten Standard-Drupal-E-Mails direkt über die Benutzeroberfläche ein- und ausschalten.

Behalten Sie die volle Kontrolle über die von Drupal 7 versandten Standard-Mails.

Beschreibung

Dieses kleine Modul erweitert die Seite mit den Drupal 7-Kontoeinstellungen um die Möglichkeit, alle Standard-E-Mails global ein- und auszuschalten. Standardmäßig bietet Drupal 7 keine Möglichkeit, die folgenden E-Mails global zu deaktivieren:

  • Willkommen (neuer Benutzer vom Administrator erstellt)
  • Willkommen (auf Genehmigung wartend)
  • Willkommen (keine Genehmigung erforderlich)
  • Passwort-Wiederherstellung
Reszli
quelle
4

Sie können dies in einem benutzerdefinierten Modul verwenden, um die Einstellungen in einem Kontrollkästchen hinzuzufügen, wie dies in den Kontoaktivierungseinstellungen erfolgt.

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

In Drupal 7:

Sie können die Variablentabelle direkt bearbeiten: name: user_mail_status_activated_notify value: i: 0;

oder in deiner template.php Datei:

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

Es gibt ein Kontrollkästchen zum Deaktivieren unter admin / user / user / create. Für mich ist es standardmäßig deaktiviert.

Pol Dellaiera
quelle
Ja, das soll eigentlich funktionieren, aber ich meinte, im Falle einer anonymen Registrierung, keine automatische E-Mail-Benachrichtigung senden.
3.
@Inunesbr Was meinst du mit "anonyme Registrierung"?
kiamlaluno
@kiamlaluno der Besucher, der sich in "user / register" ein Konto erstellt
lnunesbr
0

Für Drupal 8 arbeiten folgende für mich.

Mit dem folgenden Code wird nach der Registrierung keine E-Mail gesendet.

/**
 * 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
quelle