Nonaktifkan daftar notifikasi email

20

Saya telah melakukan penelitian mendalam melalui web dan saya juga mencoba banyak solusi alternatif, tetapi saya tidak menemukan solusi untuk menonaktifkan notifikasi email untuk pengguna baru.

Di Pengaturan Pengguna saya, saya memiliki opsi "Pengunjung dapat membuat akun tetapi persetujuan administrator diperlukan" dicentang, dan opsi "Memerlukan verifikasi email ketika pengunjung membuat akun" tidak dicentang.

Apakah kamu punya ide?

lnunesbr
sumber

Jawaban:

32

Jika Anda melihat fungsi _user_email_notify () , ia memeriksa variabel 'user_mail_' . $op . '_notify'apakah harus mengirim email atau tidak. Dengan asumsi bahwa Anda telah menonaktifkan konfirmasi email (jika tidak, menonaktifkan pemberitahuan email akan aneh;)), $ op adalah 'register_no_approval_required'. Jadi nama variabel lengkapnya adalah 'user_mail_register_no_approval_required_notify'.

Tampaknya tidak ada Antarmuka Pengguna untuk variabel itu. Namun, Anda dapat mengaturnya di settings.php Anda, menambahkan baris berikut di akhir settings.php (mungkin di dalam situs / default).

$conf['user_mail_register_no_approval_required_notify'] = FALSE;

Anda dapat melakukan hal yang sama untuk notifikasi surat lain juga; $opnilai-nilai lain yang mungkin tercantum pada halaman yang ditautkan.

Berdir
sumber
Terima kasih banyak. Sangat sulit untuk percaya bahwa tidak ada pengaturan admin.
qasimzee
Sebenarnya, saya bisa melihat kasus penggunaan untuk mencegah email dengan konfirmasi pengguna diperlukan. Sistem email sangat terbatas jika Anda ingin mengirim email html atau memvariasikan respons berdasarkan peran pengguna, jadi saya dapat melihat ingin mengambil alih alur kerja ini dengan Aturan & email khusus. Terima kasih @Berdir.
doub1ejack
FYI, modul 'mailcontrol' di bawah ini adalah solusi yang sama digulung menjadi modul sederhana. Jangan mengabaikannya.
doub1ejack
8

Anda dapat menggunakan modul Mailcontrol .

Ini memungkinkan Anda untuk menghidupkan / mematikan surat Drupal standar yang Anda inginkan langsung dari UI.

Memiliki kontrol penuh atas surat-surat default yang dikirim oleh Drupal 7 di luar kotak.

Deskripsi

Modul kecil ini memperluas halaman pengaturan akun Drupal 7 asli dengan kemampuan untuk mengaktifkan / menonaktifkan semua surat standar secara global. Secara default Drupal 7 tidak memberikan opsi untuk menonaktifkan secara global surat-surat berikut:

  • Selamat datang (pengguna baru dibuat oleh administrator)
  • Selamat datang (menunggu persetujuan)
  • Selamat datang (tidak diperlukan persetujuan)
  • Pemulihan kata sandi
Reszli
sumber
4

Anda dapat menggunakan ini dalam modul khusus untuk menambahkan pengaturan dalam kotak centang seperti yang dilakukan dalam pengaturan aktivasi akun.

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

Dalam Drupal 7:

Anda dapat mengedit tabel variabel secara langsung: nama: user_mail_status_activated_notify nilai: i: 0;

atau di file template.php Anda:

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

Ada kotak centang untuk menonaktifkan di admin / pengguna / pengguna / buat. Bagi saya, ini dinonaktifkan secara default.

Pol Dellaiera
sumber
Ya, ini benar-benar seharusnya berfungsi, tetapi, maksud saya, dalam hal pendaftaran anonim, jangan mengirim email pemberitahuan otomatis.
lnunesbr
@ Inunesbr Apa yang Anda maksud dengan "pendaftaran anonim"?
kiamlaluno
@kiamlaluno pengunjung yang membuat akun sendiri di "pengguna / daftar"
lnunesbr
0

Untuk Drupal 8 pekerjaan berikut untuk saya.

Kode berikut tidak mengirim email setelah pendaftaran.

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