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?

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.


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


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

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

1

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


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;
  }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.