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.