ปิดใช้งานการแจ้งเตือนอีเมลลงทะเบียน


20

ฉันได้ทำการค้นคว้าอย่างละเอียดทางเว็บและฉันได้ลองวิธีการแก้ปัญหาทางเลือกมากมาย แต่ฉันไม่พบวิธีแก้ไขปัญหาใด ๆ เพื่อปิดการแจ้งเตือนทางอีเมลสำหรับผู้ใช้ใหม่

ในการตั้งค่าผู้ใช้ของฉันฉันมีตัวเลือก "ผู้เข้าชมสามารถสร้างบัญชี แต่ต้องมีการอนุมัติผู้ดูแลระบบ" และตัวเลือก "ต้องมีการตรวจสอบอีเมลเมื่อผู้เยี่ยมชมสร้างบัญชี" ไม่ได้ตรวจสอบ

คุณมีความคิดใด ๆ

คำตอบ:


32

หากคุณดูที่ฟังก์ชัน_user_email_notify ()ฟังก์ชันจะตรวจสอบตัวแปร'user_mail_' . $op . '_notify'ว่าควรส่งอีเมลหรือไม่ สมมติว่าคุณมีอีเมล์ยืนยันพิการ (มิฉะนั้นการปิดใช้งานการแจ้งเตือนอีเมลจะแปลก;)) ที่ $ op 'register_no_approval_required'คือ 'user_mail_register_no_approval_required_notify'ดังนั้นชื่อตัวแปรเต็ม

ดูเหมือนจะไม่มีส่วนต่อประสานผู้ใช้สำหรับตัวแปรนั้น อย่างไรก็ตามคุณสามารถตั้งค่าได้ใน settings.php ของคุณเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของ settings.php (อาจอยู่ในไซต์ / ค่าเริ่มต้น)

$conf['user_mail_register_no_approval_required_notify'] = FALSE;

คุณสามารถทำเช่นเดียวกันสำหรับการแจ้งเตือนจดหมายอื่น ๆ ได้เช่นกัน $opค่าที่เป็นไปได้อื่น ๆจะแสดงรายการในหน้าที่เชื่อมโยง


ขอบคุณมาก. มันยากมากที่จะเชื่อว่าไม่มีการตั้งค่าผู้ดูแลระบบ
qasimzee

ที่จริงแล้วฉันเห็นกรณีใช้งานเพื่อป้องกันอีเมลโดยไม่ต้องมีการยืนยันจากผู้ใช้ อีเมลของระบบนั้นค่อนข้าง จำกัด หากคุณต้องการส่งอีเมล html หรือเปลี่ยนแปลงการตอบสนองตามบทบาทของผู้ใช้ดังนั้นฉันสามารถเห็นว่าต้องการรับช่วงงานนี้ด้วยกฎ & อีเมลที่กำหนดเอง ขอบคุณ @Berdir
doub1ejack

FYI โมดูล 'mailcontrol' ด้านล่างนี้เป็นโซลูชันเดียวกันที่รีดเป็นโมดูลอย่างง่าย อย่ามองข้ามมัน
doub1ejack

8

คุณสามารถใช้โมดูลMailcontrol

ช่วยให้คุณสามารถเปิด / ปิดเมลมาตรฐาน Drupal ที่คุณต้องการได้จาก UI

มีการควบคุมที่สมบูรณ์เกี่ยวกับเมลเริ่มต้นที่ส่งโดย 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_activated_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;
  }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.