วิธีใช้ SMTP เพื่อส่งอีเมลจาก WordPress
เผยแพร่แล้ว: 2023-04-11WordPress มีวิธีดั้งเดิมในการส่งอีเมล ใช้ฟังก์ชัน PHP mail() เพื่อส่งจดหมายข่าว การรีเซ็ตรหัสผ่าน หรืออีเมลประเภทอื่นๆ ที่คุณส่งถึงผู้ชม แม้ว่าวิธีนี้ในทางทฤษฎีจะเพียงพอ แต่ก็ยังห่างไกลจากความสมบูรณ์แบบ
ใน WordPress การส่งอีเมลด้วย SMTP เป็นทางเลือกที่ดีกว่ามาก และตั้งค่าได้ไม่ยาก บทช่วยสอนในวันนี้จะแสดงให้คุณเห็นถึงวิธีการใช้ปลั๊กอินและไม่มีปลั๊กอิน
SMTP คืออะไร?
SMTP หรือ Simple Mail Transfer Protocol กำหนดกฎสำหรับการส่งอีเมล ทำให้สามารถแลกเปลี่ยนอีเมลระหว่างคอมพิวเตอร์ เซิร์ฟเวอร์ และเครือข่ายประเภทต่างๆ ได้
เซิร์ฟเวอร์ SMTP เป็นแอปที่ทำงานตามโปรโตคอล SMTP และส่งอีเมลจากผู้ส่งไปยังผู้รับ เพื่อให้กระบวนการนี้ง่ายขึ้น เซิร์ฟเวอร์ SMTP จะรับอีเมลจากไคลเอนต์อีเมล (Gmail, Yahoo!, Outlook ฯลฯ) และโอนไปยังเซิร์ฟเวอร์ SMTP อื่นหากจำเป็น จากนั้นอีเมลจะถูกรับโดยเซิร์ฟเวอร์ SMTP ของผู้รับและส่งโดยใช้เซิร์ฟเวอร์อีเมลขาเข้า (POP3 หรือ IMAP)
เหตุใดจึงควรใช้ SMTP เพื่อส่งอีเมลใน WordPress
ดังที่เรากล่าวไว้ในตอนต้น WordPress ใช้ฟังก์ชัน PHP mail() เพื่อส่งอีเมล วิธีนี้มีปัญหาด้วยเหตุผลหลายประการ:
- ส่วนใหญ่เหมาะสำหรับอีเมลข้อความธรรมดาที่เรียบง่าย ความสามารถของ HTML ค่อนข้างจำกัด และคุณไม่สามารถเพิ่มไฟล์แนบหรือฝังรูปภาพได้ นั่นทำให้คุณมีอีเมลที่น่าเบื่อและองค์ประกอบการออกแบบเพียงเล็กน้อยหรือไม่มีเลย
- มีปัญหาด้านการส่งมอบที่สำคัญ PHP mail() ไม่มีส่วนหัวของอีเมลที่ถูกต้อง เป็นผลให้ผู้ให้บริการอินเทอร์เน็ต (ISP) ทำเครื่องหมายอีเมลที่ส่งด้วยวิธีนี้ว่าเป็นสแปมหรือปฏิเสธอีเมลทั้งหมด ตัวอย่างเช่น หากคุณส่งอีเมลโพสต์ใหม่โดยอัตโนมัติไปยังสมาชิกของคุณโดยใช้ PHP mail() โอกาสที่คุณจะพบโฟลเดอร์สแปมบ่อยๆ
- ไม่อนุญาตให้ส่งอีเมลผ่านเซิร์ฟเวอร์ภายนอก แม้ว่าคุณจะกำหนดการตั้งค่า SMTP แต่จะใช้ได้กับ localhost หรือโซลูชันที่คล้ายกันเท่านั้น PHP mail() ไม่รองรับการตรวจสอบสิทธิ์ SMTP เช่นกัน
ทางออกที่ง่ายที่สุดคือกำหนดค่า WordPress ให้ส่งอีเมลด้วยเซิร์ฟเวอร์ SMTP ส่วนหลังต้องการการรับรองความถูกต้องของส่วนหัวและรองรับการส่งข้อมูลที่ปลอดภัยผ่าน SSL และ TLS ซึ่งหมายความว่าคุณจะมีโอกาสพบปัญหาเกี่ยวกับความสามารถในการส่งอีเมลน้อยลง โดยเฉพาะอย่างยิ่งหากคุณใช้บริการ SMTP ที่เชื่อถือได้และตั้งค่าทุกอย่างอย่างเหมาะสม
ในบันทึกนั้น มาดูวิธีการส่งอีเมลใน WordPress ด้วยเซิร์ฟเวอร์ SMTP
การกำหนดค่า SMTP ใน WordPress โดยไม่ต้องใช้ปลั๊กอิน
คุณสามารถกำหนดค่า SMTP ใน WordPress ได้โดยไม่ต้องใช้ปลั๊กอินด้วยการเข้ารหัสเพียงเล็กน้อยและ PHPMailer เป็นไลบรารีที่สร้างขึ้นสำหรับ PHP เพื่อเอาชนะข้อบกพร่องของฟังก์ชัน mail() PHPMailer รองรับเนื้อหาอีเมลที่ซับซ้อน (รวมถึง HTML และรูปภาพแบบฝัง) และไฟล์แนบ สิ่งสำคัญที่สุดคือช่วยให้คุณสามารถส่งอีเมลด้วยเซิร์ฟเวอร์ SMTP ใดก็ได้
เพื่อให้ PHPMailer ทำงานได้ เราจำเป็นต้องมีเซิร์ฟเวอร์ SMTP ที่ใช้งานได้ ในตัวอย่างโค้ดด้านล่าง เราจะใช้ SMTP ของ Gmail เพื่อส่งอีเมลใน WordPress แต่ก่อนที่เราจะเริ่มต้น คุณควรสร้างรหัสผ่านสำหรับแอปด้วยคำแนะนำเหล่านี้ มิฉะนั้น คุณจะไม่สามารถยืนยันตัวตนได้สำเร็จ
ตอนนี้ ไปที่ไดเรกทอรีรากของเว็บไซต์ของคุณ และค้นหาไฟล์wp-config.phpใช้ตัวอย่างโค้ดต่อไปนี้เพื่อกำหนดการตั้งค่า WordPress SMTP โดยใช้ข้อมูลประจำตัวของ Gmail
กำหนด ( 'SMTP_username', '[email protected]' ); กำหนด ( 'SMTP_password', 'your-gmail-app-password' ); กำหนด ( 'SMTP_server', 'smtp.gmail.com' ); กำหนด ( 'SMTP_FROM', '[email protected]' ); กำหนด ( 'SMTP_NAME', 'ชื่อของคุณ' ); กำหนด ( 'SMTP_PORT', '587' ); กำหนด ( 'SMTP_SECURE', 'tls' ); กำหนด ( 'SMTP_AUTH' จริง ); กำหนด ( 'SMTP_DEBUG', 0 );
ไปที่ตัวแก้ไขธีมและค้นหาไฟล์functions.phpเพื่อแก้ไขเพิ่มเติม โปรดทราบว่าขอแนะนำให้ทำการเปลี่ยนแปลงธีมลูกเพื่อหลีกเลี่ยงการทำงานผิดพลาดของธีมหลัก เพิ่มสคริปต์ต่อไปนี้ในไฟล์ functions.php
add_action( 'phpmailer_init', 'my_phpmailer_smtp' ); ฟังก์ชัน my_phpmailer_smtp( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->โฮสต์ = SMTP_server; $phpmailer->SMTPAuth = SMTP_AUTH; $phpmailer->พอร์ต = SMTP_PORT; $phpmailer->ชื่อผู้ใช้ = SMTP_username; $phpmailer->รหัสผ่าน = SMTP_password; $phpmailer->SMTPSecure = SMTP_SECURE; $phpmailer->จาก = SMTP_FROM; $phpmailer->FromName = SMTP_NAME; } บันทึกการตั้งค่าและนั่นคือทั้งหมด ตอนนี้ WordPress ของคุณส่งอีเมลผ่านเซิร์ฟเวอร์ SMTP
สำหรับรายละเอียดเพิ่มเติม ดูวิธีการส่งอีเมลใน WordPress ผ่านฟังก์ชัน PHP
การใช้ปลั๊กอินเพื่อตั้งค่า WordPress SMTP
วิธีที่ง่ายกว่าในการกำหนดค่า WordPress ให้ส่งอีเมลผ่าน SMTP คือการใช้ปลั๊กอินเฉพาะ สิ่งเหล่านี้ไม่ต้องการทักษะการเขียนโค้ด คุณจะสามารถกำหนดค่าได้แม้ว่าจะไม่ได้รับความช่วยเหลือจากนักพัฒนาซอฟต์แวร์ก็ตาม
WP Mail SMTP
WP Mail SMTP เป็นปลั๊กอินยอดนิยมสำหรับการตั้งค่า SMTP มันสั่งให้ PHP mail() ใช้หนึ่งในเมลที่ผสานรวมหรือการตั้งค่า SMTP แบบกำหนดเอง การทำเช่นนี้จะช่วยแก้ปัญหาความสามารถในการส่งมอบของฟังก์ชันเนทีฟ
คุณสามารถติดตั้ง WP Mail SMTP ได้ง่ายๆ โดยไปที่แท็บ 'ปลั๊กอิน' จากแดชบอร์ดของเว็บไซต์ WordPress ของคุณแล้วกด 'เพิ่มใหม่' พิมพ์ 'WP Mail SMTP' ในช่องค้นหา กด 'ติดตั้งทันที' จากนั้นกด 'เปิดใช้งาน'
เมื่อติดตั้งปลั๊กอินแล้ว คุณสามารถกำหนดค่าจดหมายจากแดชบอร์ดหรือโดยใช้วิซาร์ดการตั้งค่า ทั้งคู่มีแนวคิดเหมือนกัน ต่างกันแค่การออกแบบ เราชอบใช้แดชบอร์ด ดังนั้นเราจะตั้งค่าปลั๊กอินด้วยความช่วยเหลือ
เรามีสองตัวเลือกหลัก:
- ตั้งค่า WP Mail SMTP ด้วยบริการ SMTP ของบุคคลที่สาม
- ใช้จดหมายในตัว
ขั้นตอนแรกจะเหมือนกันสำหรับทั้งสองตัวเลือก ดังนั้นเรามาคุยกันที่นี่ เปิดการตั้งค่า SMTP ของ WP Mail และเลื่อนลงไปที่ From Email และ From Name ภายใต้แท็บ 'การเชื่อมต่อหลัก'
ในช่อง From Email ให้ป้อนที่อยู่อีเมลที่จะใช้ส่งอีเมล นี่อาจเป็นบัญชีอีเมลฟรี แต่เราขอแนะนำที่อยู่กับโดเมนที่กำหนดเองเพื่อให้สามารถส่งได้ดีขึ้น เพื่อให้แน่ใจว่ามีการใช้ที่อยู่ที่ป้อนในอีเมลทั้งหมด ให้เลือกช่องบังคับจากอีเมล
ในฟิลด์ From Name ให้ป้อนชื่อที่จะแสดงในอีเมลที่ส่ง ตรวจสอบ Force From Name อีกครั้งเพื่อให้แน่ใจว่าปลั๊กอินอื่นๆ (เช่น WooCommerce หรือปลั๊กอินจดหมายข่าว WordPress) จะไม่ลบล้างการตั้งค่านี้
เมื่อเสร็จแล้ว เราสามารถไปยังการตั้งค่าเมลเพื่อสั่งให้ WordPress ส่งอีเมลด้วยปลั๊กอิน
การตั้งค่าจดหมาย WP กับบริการ SMTP บุคคลที่สาม
การใช้บริการ SMTP ของบุคคลที่สามที่เชื่อถือได้เป็นสิ่งสำคัญเพื่อให้แน่ใจว่าอีเมล WordPress ของคุณถูกส่งไปยังกล่องจดหมายของผู้รับ ด้วยคุณสมบัติ SMTP อื่นๆ ของ WP Mail SMTP คุณสามารถรวมเมลที่คุณโปรดปรานได้อย่างง่ายดาย สำหรับบทช่วยสอนในวันนี้ เราจะใช้บริการ SMTP ที่เชื่อถือได้ซึ่งให้บริการโดย Mailtrap
แต่ก่อนที่จะรวมเข้ากับเว็บไซต์ WordPress ของคุณ คุณต้องสร้างบัญชีและทำตามตัวช่วยในแอปเพื่อยืนยันโดเมนของคุณก่อน ในการดำเนินการดังกล่าว คุณควรมีสิทธิ์เข้าถึงระเบียน DNS ของโดเมน คุณจะต้องเพิ่มระเบียนสำเร็จรูป SPF, DKIM และ DMARC จากนั้นจึงกดยืนยันโดเมน
เมื่อบัญชีของคุณเปิดใช้งานแล้ว ให้กลับไปที่ 'การส่งโดเมน' และกดที่โดเมนที่ยืนยันแล้ว จากนั้นคลิก 'API และ SMTP' เลือก 'SMTP' และคัดลอกข้อมูลประจำตัว
กลับไปที่ WP Mail SMTP และเลือก SMTP อื่น ๆ ภายใต้แท็บ Mailer
คุณจะเห็นชุดของฟิลด์ว่าง กรอกข้อมูลโดยใช้ข้อมูลรับรอง SMTP ของ Mailtrap:
- โฮสต์ SMTP: live.smtp.mailtrap.io
- การเข้ารหัส: TLS (คุณสามารถเลือก SSL ได้ แต่แนะนำให้ใช้ TLS)
- พอร์ต SMTP: 587 (จะถูกกรอกโดยอัตโนมัติ)
- การรับรองความถูกต้อง: สลับเป็นเปิด
- ชื่อผู้ใช้ SMTP: api
- รหัสผ่าน SMTP: รหัสผ่าน SMTP ของคุณ
กด 'บันทึกการตั้งค่า' คุณจะเห็นหน้าต่างยืนยัน หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้องและ WordPress ส่งอีเมล SMTP ให้กลับไปที่บัญชี Mailtrap ของคุณแล้วกด 'ยืนยันการตั้งค่า'
การใช้ Mailer ในตัว
ไปที่ตัวเลือกที่สองของการผสานรวม – การใช้เมลในตัวเพื่อให้แน่ใจว่า WordPress ใช้ SMTP เพื่อส่งอีเมล ด้วยวิธีนี้ คุณสามารถเลือกหนึ่งในเมลของ WP Mail SMTP รวมถึง SendLayer, SMTP.com, Sendinblue, Amazon SES เป็นต้น วิธีนี้ยังสามารถใช้ตั้งค่า Gmail SMTP ใน WordPress หรือแม้แต่ Microsoft 365/Outlook
กระบวนการรวมจะคล้ายกันสำหรับ ESP ส่วนใหญ่ แน่นอน คุณควรมีบัญชีที่ใช้งานได้เพื่อรวมเข้ากับ WP Mail SMTP คุณเพียงแค่ต้องเลือกจดหมายและป้อนรหัส API ของบัญชีของคุณ คำแนะนำเกี่ยวกับสิ่งนั้นจะมีอยู่ในเอกสารทางการของ ESP
สำหรับจดหมายบางฉบับ คุณอาจต้องป้อนโดเมนการส่ง รหัสสตรีมข้อความ หรือภูมิภาคของคุณ คำแนะนำโดยละเอียดสำหรับผู้ส่งจดหมายแต่ละรายมีอยู่ที่นี่
ปลั๊กอิน HubSpot WordPress
WP Mail SMTP ส่วนใหญ่ใช้เพื่อกำหนดค่า WordPress ให้ส่งอีเมลด้วย SMTP ในทางตรงกันข้าม ปลั๊กอิน HubSpot WordPress เป็นปลั๊กอินตัวจัดการลูกค้าสัมพันธ์ (CRM) ที่สมบูรณ์สำหรับเว็บไซต์ WordPress ของคุณ ด้วยความช่วยเหลือของมัน คุณสามารถสร้างรายชื่ออีเมลด้วยแบบฟอร์มลงทะเบียน สื่อสารกับผู้เยี่ยมชมด้วยแชทสด และวิเคราะห์เมตริกที่สำคัญ
ที่สำคัญที่สุด ปลั๊กอิน HubSpot WordPress ช่วยให้คุณสามารถผสานรวม ESP ที่คุณต้องการเพื่อส่งอีเมลการตลาด (ด้วยตนเองหรือโดยอัตโนมัติ) ไปยังผู้ติดต่อของคุณ นอกจากนี้ยังมีเทมเพลตในตัวและตัวแก้ไขแบบลากและวาง ดังนั้น หากคุณกำลังมองหาบางสิ่งที่มากกว่าการกำหนดค่า SMTP HubSpot อาจเป็นตัวเลือกที่ดีสำหรับคุณ
SMTP ของ Gmail
Gmail SMTP เป็นอีกหนึ่งปลั๊กอิน WordPress เพื่อส่งอีเมลด้วย SMTP แต่ได้รับการออกแบบมาโดยเฉพาะสำหรับ Gmail มันอาศัย PHPMailer และฟังก์ชัน wp_mail ดั้งเดิมในการส่งอีเมล ซึ่งหมายความว่าคุณยังคงสามารถใช้ฟังก์ชันทั้งหมดได้
ปลั๊กอิน SMTP ของ Gmail เชื่อมต่อกับ Gmail โดยใช้โปรโตคอล API และ OAuth 2.0 ด้วยวิธีนี้ คุณจะไม่ต้องป้อนชื่อผู้ใช้หรือรหัสผ่านใดๆ อย่างไรก็ตาม คุณจะต้องสร้างแอปใน Google Developer Console และกำหนดค่าข้อมูลรับรอง OAuth โชคดีที่หน้าอย่างเป็นทางการของปลั๊กอินแสดงคำแนะนำที่จำเป็น
โพสต์ SMTP Mailer
ตัวเลือกสุดท้ายที่เรามีคือ Post SMTP Mailer เป็นปลั๊กอินที่ใช้งานง่ายที่ให้คุณรวม ESP โดยใช้ SMTP หรือ API เวอร์ชันฟรีรองรับ Mailgun, SendGrid, Mandrill (ปัจจุบันคือ Mailchimp Transactional Email), SparkPost, Postmark, Sendinblue และ Gmail API รุ่น Pro จะช่วยให้คุณเข้าถึง Zoho Mail, Amazon SES และ Microsoft 365
นอกจากนี้ Post SMTP Mailer ยังเก็บบันทึกอีเมลและส่งการแจ้งเตือน Chrome หากมีปัญหาใดๆ เกิดขึ้น
จะทดสอบอีเมลใน WordPress ได้อย่างไร?
เพื่อให้แน่ใจว่าการกำหนดค่าของคุณสามารถส่งอีเมลจาก WordPress ได้สำเร็จ คุณจะต้องทดสอบอีเมลของคุณ ปลั๊กอินส่วนใหญ่มาพร้อมกับคุณสมบัติการทดสอบเริ่มต้นสำหรับการตรวจสอบขั้นพื้นฐานบางอย่าง
ตัวอย่างเช่น เมื่อใช้ WP Mail SMTP คุณสามารถไปที่แท็บ 'ทดสอบอีเมล' ป้อนที่อยู่อีเมลของคุณ แล้วกด 'ส่งอีเมล' หากการกำหนดค่าถูกต้อง คุณควรพบอีเมลทดสอบในกล่องจดหมายของคุณ ถ้าไม่ WP Mail SMTP จะแสดงบันทึกข้อผิดพลาด
อย่างไรก็ตาม การทดสอบฟังก์ชันการส่งอีเมลนั้นไม่เพียงพอเสมอไป จำเป็นต้องทดสอบ HTML ตรวจสอบความถูกต้องของส่วนหัว และตรวจสอบคะแนนสแปมของคุณก่อนที่จะส่งอีเมลไปยังผู้ติดต่อของคุณ นั่นคือที่มาของโซลูชันอื่นของ Mailtrap การทดสอบอีเมลสามารถช่วยคุณได้ มันจะรวบรวมอีเมล WordPress ของคุณในกล่องจดหมายเสมือน ตรวจสอบให้แน่ใจว่าไม่มีอีเมลใดเข้าถึงกล่องจดหมายของผู้รับ
เช่นเดียวกับการส่งอีเมล การทดสอบอีเมลสามารถรวมเข้ากับปลั๊กอิน WordPress โดยใช้ข้อมูลรับรอง SMTP คุณจะพบสิ่งเหล่านั้นในบัญชีของคุณโดยขยาย 'กล่องจดหมายของฉัน' และกด 'แสดงข้อมูลประจำตัว' ต่อไปนี้คือลักษณะของการตั้งค่า SMTP ตัวอย่าง:
- โฮสต์ SMTP: sandbox.smtp.mailtrap.io
- การเข้ารหัส: TLS หรือ SSL
- พอร์ต SMTP: 465 หรือ 587
- การรับรองความถูกต้อง: สลับเป็นเปิด
- ชื่อผู้ใช้ SMTP: <ชื่อผู้ใช้ SMTP ของคุณ>
- รหัสผ่าน SMTP: <รหัสผ่าน SMTP ของคุณ>
ภายในเวลาไม่กี่วินาที อีเมลทดสอบของคุณจะปรากฏขึ้นในกล่องขาเข้าเสมือนของคุณ หากการกำหนดค่าถูกต้อง
ดังที่เราได้เห็นแล้ว ในการกำหนดค่า WordPress ให้ส่งอีเมลด้วย SMTP คุณมีสองตัวเลือกหลัก: การเขียนโค้ดด้วย PHPMailer หรือการใช้ปลั๊กอิน ตัวเลือกแรกเหมาะสำหรับนักพัฒนามากกว่า ในขณะที่ตัวเลือกที่สองเหมาะสำหรับนักการตลาด ไม่ว่าคุณจะเลือกวิธีใด สิ่งสำคัญคือการหาทางแก้ไขข้อบกพร่องของ PHP
ปลั๊กอินทั้งหมดที่เราระบุไว้ข้างต้นอนุญาตให้คุณใช้ SMTP ของ Gmail แม้ว่าจะดีเพียงพอสำหรับการส่งอีเมลเป็นครั้งคราว แต่จะดีกว่าหากเลือกใช้ ESP ที่เชื่อถือได้เพื่อส่งอีเมลจำนวนมาก มิฉะนั้น อีเมลของคุณมักจะถูกทำเครื่องหมายว่าเป็นสแปม
สนุก!