โมดูลนี้มีไว้เพื่อเป็นปลั๊กอินที่ทำงานร่วมกับโมดูล PHPMailer SMTP ซึ่งให้การตรวจสอบสิทธิ์ Gmail ของ Google Workspace ผ่าน OAuth2 ได้รับแรงบันดาลใจจาก phpmailer_oauth2 เขียนโดย Ian McLean (imclean) หากฉันไม่พบโมดูลของ Ian ก็ไม่น่าเป็นไปได้ที่ฉันจะพยายามสร้างโมดูลสำหรับ Google Gmail
สำคัญ: โมดูลนี้ต้องใช้โมดูล Google league/oauth2-google ซึ่งมีอยู่ที่ https://oauth2-client.thephpleague.com/providers/league/ ควรติดตั้งไว้ในไดเร็กทอรีผู้ขายของคุณ
ก่อนที่จะใช้โมดูลนี้ จำเป็นต้องตั้งค่ารหัสไคลเอ็นต์และความลับไคลเอ็นต์บน Google ต่อไปนี้เป็นวิธีดำเนินการในเดือนเมษายน 2024 และกำหนดค่าโมดูลนี้:
ลงชื่อเข้าใช้บัญชี Google Workspace ของคุณ
ไปที่ https://console.cloud.google.com/
ที่ด้านซ้ายบนของหน้าถัดจาก "Google Cloud" ควรมีเมนูแบบเลื่อนลงของโครงการ คลิกที่มัน
หากคุณไม่มีโปรเจ็กต์อยู่ในกล่องโต้ตอบ 'เลือกทรัพยากร' ให้สร้างโปรเจ็กต์ จากนั้นเลือกโปรเจ็กต์นั้นเป็นโปรเจ็กต์ปัจจุบันของคุณ
คลิกที่ 'APIs & Services' ซึ่งเป็นปุ่มขนาดใหญ่ตรงกลางหน้า
คลิกที่ข้อมูลประจำตัวในเมนูที่ปรากฏทางด้านซ้ายของหน้า
คลิกที่สร้างข้อมูลรับรอง จากนั้นเลือก 'รหัสไคลเอ็นต์ OAuth'
เลือก 'แอปพลิเคชันเว็บ' สำหรับประเภทแอปพลิเคชัน
ตั้งชื่อข้อมูลประจำตัวของคุณและจดรหัสลูกค้าและความลับของลูกค้า คุณจะต้องป้อนค่าเหล่านี้ใน (11) ด้านล่าง
เมื่อคุณติดตั้งโมดูลนี้แล้ว คุณจะพบ 'URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต' สำหรับไซต์ของคุณโดยไปที่การกำหนดค่า -> ระบบ -> PHPMailer Gmail OAuth2 (/admin/config/system/phpmailer-gmail-oauth2) เปิดหน้านั้นขึ้นมาในหน้าต่างเบราว์เซอร์แยกต่างหาก แล้วคุณจะพบ URI การเปลี่ยนเส้นทางที่ Google ต้องการใกล้กับด้านบนของหน้า คัดลอก URI และป้อนลงในช่อง 'URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต' ในหน้า Google กดบันทึก
กลับไปที่หน้า Drupal ป้อนที่อยู่อีเมล Google รหัสลูกค้า และความลับของลูกค้า จากนั้นกดปุ่ม "บันทึกการกำหนดค่า"
หลังจากที่คุณบันทึกข้อมูลรับรอง Google ของคุณแล้ว ปุ่ม "รับโทเค็นการรีเฟรช" จะปรากฏขึ้น กดปุ่มนั้นเพื่อเปลี่ยนเส้นทางจากไซต์ของคุณไปยัง Google จากนั้นทำตามคำแนะนำบน Google
เมื่อดำเนินการเสร็จแล้ว Google ควรออก Refresh Token และเปลี่ยนเส้นทางกลับไปยังหน้า Drupal ที่คุณเพิ่งออก หากทุกอย่างได้ผล คุณจะมี Refresh Token และพร้อมที่จะส่งอีเมล
หากคุณพบปัญหาในการเปลี่ยนเส้นทางไปยัง Google เมื่อคุณกดปุ่ม 'รับโทเค็นการรีเฟรช' คุณอาจต้องเพิ่มสิ่งต่อไปนี้ลงในไฟล์ settings.php ของคุณ:
$ settings [ ' trusted_host_patterns ' ] = [ ' ^accounts.google.com$ ' ];
If you have other trusted_host_patterns, add '^accounts.google.com$' to the array.
รายการตั้งค่าอื่นๆ สองสามรายการ:
อย่าลืมไปที่โมดูล Mail เพื่อเลือก 'PHPMailer SMTP' เป็นตัวจัดรูปแบบและผู้ส่งเมลของคุณ (/admin/config/system/mailsystem)
หากคุณมีโมดูลอื่นๆ เช่น Commerce 2 ที่ส่งอีเมล คุณอาจต้องเพิ่มโมดูลเหล่านั้นที่ด้านล่างของหน้าเดียวกันใน (1) ด้านบน
ในหน้าการตั้งค่าการขนส่ง PHPMailer SMTP ให้เลือก 'Gmail OAuth2' เป็นวิธีการตรวจสอบสิทธิ์ SMTP ของคุณ (/admin/config/system/phpmailer-smtp) ตั้งค่าพอร์ต SMTP เป็น 587 และเลือก TLS เป็นโปรโตคอลที่ปลอดภัย
คุณสามารถใช้บริการ 'ทดสอบการกำหนดค่า' บนหน้าการตั้งค่าการขนส่ง SMTP ของ PHPMailer เพื่อตรวจสอบว่าการกำหนดค่าใหม่ทำงานโดยการส่งอีเมลทดสอบ