Вимкнути повідомлення електронної пошти про реєстрацію


20

Я провів глибоке дослідження в Інтернеті, і я також спробував багато альтернативних рішень, але не знайшов жодного рішення, щоб відключити сповіщення електронною поштою для нових користувачів.

У налаштуваннях користувача у мене є опція "Відвідувачі можуть створювати облікові записи, але потрібне схвалення адміністратора", і опція "Вимагати перевірку електронної пошти, коли відвідувач створює обліковий запис" не встановлена.

У вас є ідея?

Відповіді:


32

Якщо ви подивитеся на функцію _user_email_notify () , вона перевіряє змінну, 'user_mail_' . $op . '_notify'чи слід надсилати електронний лист чи ні. Якщо припустити, що ви відключили підтвердження електронною поштою (інакше відключення сповіщень про пошту було б дивним;)), $ op є 'register_no_approval_required'. Отже, повна назва змінної є 'user_mail_register_no_approval_required_notify'.

Здається, що для цієї змінної немає інтерфейсу користувача. Однак ви можете встановити його у your settings.php, додавши наступний рядок в кінці settings.php (можливо, всередині сайтів / за замовчуванням).

$conf['user_mail_register_no_approval_required_notify'] = FALSE;

Ви можете зробити те ж саме і для інших повідомлень електронною поштою; інші можливі $opзначення вказані на пов'язаній сторінці.


Дуже дякую. Настільки важко повірити, що не існує налаштування адміністратора.
qasimzee

Насправді я можу побачити випадок використання для запобігання необхідності підтвердження електронної пошти з підтвердженням користувача. Системні електронні листи досить обмежені, якщо ви хочете надсилати html-повідомлення або змінювати відповідь за роллю користувача, тому я бачу бажаючих перейняти цей робочий процес за допомогою Правил та користувацьких електронних листів. Дякую @Berdir
сумне1ejack

FYI, модуль "mailcontrol" нижче - це те саме рішення, що перетворюється на простий модуль. Не забувайте про це.
сумневу1ejack

8

Ви можете використовувати модуль Mailcontrol .

Це дозволяє вмикати / вимикати будь-яку стандартну пошту Drupal, яку ви бажаєте, безпосередньо з інтерфейсу користувача.

Майте повний контроль над замовчуванням листів, що надсилаються Drupal 7 поза коробкою.

Опис

Цей невеликий модуль розширює оригінальну сторінку налаштувань облікового запису Drupal 7 з можливістю глобального включення / вимкнення всіх стандартних повідомлень. За замовчуванням Drupal 7 не дає можливості глобально відключити такі електронні листи:

  • Ласкаво просимо (новий користувач створений адміністратором)
  • Ласкаво просимо (чекаємо затвердження)
  • Ласкаво просимо (не потрібно затвердження)
  • Відновлення паролю


4

Ви можете використовувати це в спеціальному модулі, щоб додати налаштування у прапорець, як це робиться в налаштуваннях активації облікового запису.

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

У Drupal 7:

Ви можете редагувати таблицю змінних безпосередньо: ім'я: user_mail_status_activate_notify значення: i: 0;

або у файлі template.php:

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

1

Існує прапорець для відключення в адміністратора / користувача / користувача / створення. Для мене він відключений за замовчуванням.


Так, це дійсно має спрацювати, але, я мав на увазі, у випадку анонімної реєстрації, не надсилайте повідомлення електронної пошти.
lnunesbr

@Inunesbr Що ви маєте на увазі під "анонімною реєстрацією"?
kiamlaluno

@kiamlaluno відвідувач, який сам створює обліковий запис у "користувач / зареєструватися"
lnunesbr

0

Для Drupal 8 наступна робота для мене.

Наступний код не надсилає електронний лист після реєстрації.

/**
 * 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;
  }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.