ในหน้านี้WordPress ส่งอีเมลอย่างไรตามค่าเริ่มต้น
เว็บไซต์ WordPress ส่งอีเมลมากกว่าที่เจ้าของคิด ทั้งการแจ้งเตือนจากฟอร์มติดต่อ การรีเซ็ตรหัสผ่าน อีเมลต้อนรับผู้ใช้ใหม่ การแจ้งเตือนตรวจสอบความคิดเห็น และสำหรับร้านค้า ยังมีอีเมลยืนยันคำสั่งซื้อ ใบแจ้งหนี้ และอัปเดตการจัดส่งทั้งหมดของ WooCommerce อีกด้วย ส่วนใหญ่ไม่มีใครตั้งใจออกแบบอีเมลเหล่านี้ และไม่มีใครตรวจสอบจนกว่าลูกค้าจะเขียนมาบอกว่าอีเมลคำสั่งซื้อไม่เคยมาถึง
เมื่ออีเมลเหล่านี้ไปอยู่ในสแปม ให้ดูว่าอีเมลออกจากเซิร์ฟเวอร์อย่างไรก่อนจะแก้ไขข้อความ ใน WordPress ส่วนนี้ถูกตั้งค่าเริ่มต้นเป็นตัวเลือกที่ส่งอีเมลถึงกล่องขาเข้าได้ยากที่สุด
WordPress ส่งอีเมลอย่างไรตามค่าเริ่มต้น
ตัว WordPress เองและปลั๊กอินเกือบทุกตัวที่ส่งอีเมล รวมถึง WooCommerce และปลั๊กอินฟอร์ม ใช้ฟังก์ชันเดียวคือ wp_mail() ฟังก์ชันนี้ส่งข้อความต่อให้ PHPMailer ซึ่งตามค่าเริ่มต้นจะส่งต่อไปยัง mail() ของ PHP แล้วจึงส่งให้โปรแกรมอีเมลที่มีอยู่บนเซิร์ฟเวอร์โฮสติ้ง ไม่มีการล็อกอินกับผู้ให้บริการอีเมล ไม่มีการเซ็นลายเซ็น และไม่มีสิ่งใดใน DNS ที่ระบุว่าเซิร์ฟเวอร์นี้ส่งอีเมลแทนโดเมนของคุณได้
ที่อยู่ผู้ส่งที่เลือกคือ wordpress@ ตามด้วยโดเมนของเว็บไซต์คุณ (WordPress จะตัด www. ที่อยู่ด้านหน้าออก) หากคุณไม่เคยเปลี่ยน นี่คือที่อยู่ที่ลูกค้าเห็นในบรรทัด From และในหลายเว็บไซต์ก็ไม่มีใครเคยสร้างกล่องจดหมายนี้เลย
บนโฮสติ้งแบบใช้ร่วมกัน ข้อความจะถูกส่งออกจากเซิร์ฟเวอร์ของโฮสต์ ผ่าน IP ที่เว็บไซต์อื่นจำนวนมากใช้งานร่วมกัน หากเว็บไซต์ใดเว็บไซต์หนึ่งส่งอีเมลไปยังรายชื่อที่ซื้อมา หรือถูกแฮ็กแล้วเริ่มส่งสแปม IP นั้นจะมีชื่อเสียงไม่ดี และอีเมลรีเซ็ตรหัสผ่านของคุณก็ถูกส่งจาก IP เดียวกัน
ดังนั้น WordPress ที่ติดตั้งตามค่าเริ่มต้นจึงส่งอีเมลที่ SPF ไม่สอดคล้องกับโดเมนของคุณ โดยทั่วไปที่อยู่สำหรับรับอีเมลตีกลับจะยังอยู่บนชื่อเซิร์ฟเวอร์ของโฮสต์เอง และหากที่อยู่ของคุณไปอยู่ตรงนั้นแทน SPF จะล้มเหลวโดยตรง อีกทั้งไม่มีลายเซ็น DKIM สำหรับโดเมนของคุณ ทำให้ DMARC ล้มเหลว Gmail และ Yahoo กำหนดกฎสำหรับผู้ส่งในเดือนกุมภาพันธ์ 2024 Microsoft ทำเช่นเดียวกันในเดือนพฤษภาคม 2025 สำหรับโดเมนที่ส่งข้อความไปยัง Outlook.com มากกว่า 5,000 ข้อความต่อวัน และตั้งแต่เดือนพฤศจิกายน 2025 Gmail เริ่มปฏิเสธอีเมลที่ผิดกฎมากขึ้น แทนที่จะจัดไปไว้ในสแปม
ส่งผ่านบริการอีเมลจริง
วิธีแก้ที่สำคัญที่สุดคือหยุดใช้ mail() ติดตั้งปลั๊กอิน SMTP (WP Mail SMTP, FluentSMTP และ Post SMTP เป็นตัวเลือกที่ใช้กันทั่วไป และแต่ละตัวมีเวอร์ชันฟรี) แล้วเชื่อมต่อกับบริการที่ส่งอีเมลได้อย่างถูกต้อง: ผู้ให้บริการกล่องจดหมายของคุณเอง เช่น Google Workspace หรือ Microsoft 365 หรือบริการส่งอีเมลแบบธุรกรรม เช่น Amazon SES, Brevo, SendGrid หรือ Mailgun
ปลั๊กอินจะแทนที่วิธีส่งภายใต้ wp_mail() ดังนั้นอีเมลทุกฉบับจากทุกปลั๊กอินจะถูกส่งผ่านเส้นทางใหม่โดยไม่ต้องแก้ไขปลั๊กอินเหล่านั้น ใช้ตัวเลือก API ของผู้ให้บริการ หากปลั๊กอินรองรับ แทนการใช้ SMTP แบบปกติพร้อมรหัสผ่าน WP Mail SMTP ระบุว่าเส้นทาง API ใช้งานได้แม้โฮสต์ของคุณบล็อกพอร์ต SMTP
หลายคนข้ามขั้นตอนถัดไป ยืนยันตัวตนโดเมนกับผู้ให้บริการนั้น: แต่ละรายจะให้ระเบียน DNS ที่ต้องเผยแพร่ โดยทั่วไปคือระเบียน CNAME สองหรือสามรายการสำหรับ DKIM และ SPF include หรือโดเมน return-path แบบกำหนดเอง จนกว่าระเบียนเหล่านั้นจะอยู่ใน DNS ของคุณ ผู้ให้บริการจะใช้ชื่อของตัวเองในลายเซ็น และ DMARC จะล้มเหลวตรงนั้นเช่นเดียวกับที่เคยล้มเหลวบนโฮสต์
ที่อยู่ From ในฟอร์มติดต่อ
ปลั๊กอินฟอร์ม เช่น Contact Form 7 และ WPForms ให้คุณเลือกสิ่งที่จะใส่ในบรรทัด From ของการแจ้งเตือนที่คุณได้รับ การตั้งค่าหลายแบบใส่ที่อยู่ของผู้เข้าชมไว้ตรงนั้น เพื่อให้เมื่อกด Reply ระบบจะตอบกลับผู้เข้าชม ซึ่งดูเหมือนฉลาด แต่เป็นสิ่งที่ DMARC ถูกสร้างขึ้นมาเพื่อป้องกันโดยตรง
สมมติว่าผู้เข้าชมชื่อ Anna เขียนมาจาก anna@yahoo.com เว็บไซต์ของคุณจะส่งข้อความที่อ้างว่ามาจาก yahoo.com ผ่านเซิร์ฟเวอร์ที่ Yahoo ไม่เคยอนุญาต yahoo.com เผยแพร่นโยบาย DMARC เป็น p=reject ดังนั้นผู้รับที่ปฏิบัติตามนโยบายนี้จะปฏิเสธการแจ้งเตือนว่าเป็นข้อความปลอมแปลง สำหรับผู้เข้าชมที่ใช้ Gmail นโยบายจะเข้มงวดน้อยกว่า และข้อความมักไปอยู่ในสแปม WPForms เตือนเรื่องนี้ไว้โดยตรงในเอกสารของพวกเขาFrom คือคุณ, Reply-To คือผู้เข้าชม
ให้ตั้งค่าแบบนี้แทน:
- From: ที่อยู่ในโดเมนของคุณเอง เช่น
forms@yourdomain.comซึ่งเป็นโดเมนเดียวกับที่ปลั๊กอิน SMTP ของคุณยืนยันตัวตนไว้ - Reply-To: ที่อยู่ของผู้เข้าชมจากฟิลด์ในฟอร์ม เมื่อกด Reply ก็ยังตอบ Anna ได้
- To: กล่องจดหมายที่คุณใช้อ่านจริง
ใน Contact Form 7 ให้ไปที่แท็บ Mail: ใส่ที่อยู่ของคุณเองใน From และเพิ่ม Reply-To: [your-email] ใน Additional headers ปลั๊กอินฟอร์มอื่นมีฟิลด์ Reply-To ในการตั้งค่าการแจ้งเตือน
อีเมล WooCommerce
WooCommerce มีการตั้งค่าผู้ส่งของตัวเอง: WooCommerce แล้วไปที่ Settings แล้ว Emails ในส่วน Email Sender Options ซึ่งมีชื่อ "From" และที่อยู่ "From" โดยค่าเริ่มต้น ที่อยู่นี้คืออีเมลผู้ดูแลเว็บไซต์ หากคนที่ติดตั้งร้านค้าใช้อีเมล Gmail สำหรับส่วนนี้ อีเมลยืนยันคำสั่งซื้อทุกฉบับจะถูกส่งออกไปโดยอ้างว่ามาจาก gmail.com และไม่ผ่าน DMARC ด้วยเหตุผลเดียวกับฟอร์มติดต่อด้านบน ตั้งค่าที่อยู่อีเมลบนโดเมนที่คุณยืนยันตัวตนไว้ตรงนี้ โดยใช้ชื่อร้านเป็นชื่อผู้ส่งก็เหมาะสม (สำหรับการแจ้งเตือนคำสั่งซื้อที่ส่งถึงคุณ WooCommerce ใส่ลูกค้าไว้ใน Reply-To อยู่แล้ว ซึ่งเป็นวิธีที่ถูกต้อง)
มีปัญหาสองอย่างที่เกิดกับอีเมลร้านค้า แต่ไม่เกิดกับฟอร์มติดต่อ
อย่างแรกคือปริมาณ การลดราคาหรือปลั๊กอินจดหมายข่าวที่ส่งถึงลูกค้าผ่านเส้นทางเดียวกับอีเมลยืนยันคำสั่งซื้อ จะรวมอีเมลการตลาดและอีเมลธุรกรรมไว้ในชื่อเสียงเดียวกัน หากจดหมายข่าวได้รับการร้องเรียน ใบเสร็จก็จะได้รับผลกระทบ การส่งทั้งสองประเภทผ่านบริการคนละรายช่วยแยกออกจากกัน และการใช้ซับโดเมนแยกสำหรับการตลาดก็ช่วยได้เล็กน้อย แม้ผู้รับยังคงให้น้ำหนักกับชื่อเสียงของโดเมนหลักอยู่บ้าง
อย่างที่สองคือเรื่องการยกเลิกรับ อีเมลยืนยันคำสั่งซื้อและการรีเซ็ตรหัสผ่านเป็นอีเมลธุรกรรม ดังนั้นกฎการยกเลิกรับด้วยคลิกเดียวของ Gmail และ Yahoo จึงไม่ใช้กับอีเมลเหล่านี้ แต่คำขอรีวิว การแจ้งเตือนตะกร้าสินค้าที่ยังไม่ชำระเงิน หรืออีเมล "คุณอาจชอบสิ่งนี้ด้วย" ที่ส่งให้ผู้ซื้อเก่า เป็นอีเมลการตลาด และหากคุณส่งอีเมลเหล่านี้ในปริมาณมาก กฎนี้จะใช้กับอีเมลเหล่านั้นอย่างเต็มรูปแบบ ซึ่งหมายถึงต้องมีส่วนหัว List-Unsubscribe ที่มีตัวเลือกคลิกเดียว ตรวจสอบว่าส่วนเสริมที่ส่งอีเมลเหล่านี้เพิ่มส่วนหัวดังกล่าวหรือไม่ การทดสอบด้านล่างจะแสดงผลไม่ว่ากรณีใด
ฝั่ง DNS แบบเข้าใจง่าย
ไม่ว่าคุณจะส่งผ่านบริการใด โดเมนของคุณต้องมี 3 สิ่งใน DNS เพื่อให้อีเมลได้รับความเชื่อถือ ดูคำอธิบายแบบละเอียดได้ที่ คำอธิบาย SPF, DKIM และ DMARC ส่วนนี้คือความหมายสำหรับเว็บไซต์ WordPress
- SPF. TXT record หนึ่งรายการบนโดเมนของคุณที่ระบุว่าใครบ้างที่ส่งอีเมลแทนโดเมนได้ บริการส่งอีเมลหลายรายไม่ต้องแก้ไขส่วนนี้ เพราะจัดแนวผ่าน bounce domain ของตัวเอง หากบริการของคุณขอ
include:และโดเมนมี record สำหรับผู้ให้บริการกล่องจดหมายอยู่แล้ว ให้เพิ่มลงใน record นั้น อย่าสร้างรายการที่สอง เพราะ SPF สอง record ถือเป็นข้อผิดพลาดและ ทั้งคู่จะใช้งานไม่ได้ ตรวจผลด้วย ตัวตรวจสอบ SPF - DKIM. record ที่บริการส่งอีเมลของคุณให้มา เมื่อ record ใช้งานได้แล้ว บริการจะลงลายเซ็นทุกข้อความด้วยโดเมนของคุณ และนี่คือลายเซ็นที่ DMARC ตรวจหา
- DMARC. TXT record ที่
_dmarc.yourdomain.comเริ่มด้วยv=DMARC1; p=none; rua=mailto:และอีเมลที่คุณอ่าน แล้วค่อยเพิ่มความเข้มงวดเมื่อรายงานไม่แสดงว่าอีเมลของคุณมีรายการใดล้มเหลว ตัวตรวจสอบ DMARC จะอ่านการตั้งค่าที่คุณมี
โปรดทราบว่าเซิร์ฟเวอร์โฮสติ้งอาจยังส่งบางอย่างเองอยู่ เช่น cron job หรือปลั๊กอินเก่าที่เรียก mail() โดยตรงแทน wp_mail() ข้อความเหล่านั้นจะข้ามปลั๊กอิน SMTP และรายงาน DMARC จะแสดงเป็นแหล่งส่งที่คุณไม่คาดคิด
ทดสอบอีเมลจริง ไม่ใช่ข้อความทดสอบ
ปลั๊กอิน SMTP ทุกตัวมีปุ่ม "send test email" และสิ่งที่พิสูจน์ได้มีเพียงการเชื่อมต่อทำงานเท่านั้น คุณจะไม่เห็นอีเมลยืนยันคำสั่งซื้อที่ WooCommerce สร้างขึ้น การแจ้งเตือนจากฟอร์มพร้อม Reply-To หรืออีเมลรีเซ็ตรหัสผ่านพร้อมลิงก์ที่ WordPress ใส่ไว้
ดังนั้นผมจึงให้ WordPress ส่งอีเมลจริงเหล่านั้น ที่อยู่ทดสอบจากหน้าแรกรับได้หนึ่งข้อความ ดังนั้นให้สร้างที่อยู่ใหม่สำหรับอีเมลแต่ละฉบับที่คุณต้องการตรวจสอบ สำหรับฟอร์ม ให้ใส่ที่อยู่นี้เป็นผู้รับการแจ้งเตือนชั่วครู่แล้วส่งฟอร์ม สำหรับ WooCommerce ให้สั่งซื้อทดสอบโดยใช้ที่อยู่นี้เป็นอีเมลลูกค้า สำหรับการรีเซ็ตรหัสผ่าน ให้กำหนดที่อยู่นี้แก่ผู้ใช้ทดสอบแล้วขอรีเซ็ตรหัสผ่าน แต่ละข้อความจะมีรายงานของตัวเอง พร้อม SPF, DKIM และ DMARC รวมถึง alignment, รายการบล็อก 21 รายการ, เนื้อหาและลิงก์, และกฎสำหรับผู้ส่งแบบกลุ่ม โฟลเดอร์ใน Gmail, Outlook, Yahoo และผู้ให้บริการรายอื่นต้องใช้ข้อความเดียวกันที่ส่งไปยังรายการกล่องขาเข้าพร้อมตัวระบุในหัวเรื่อง ซึ่งฟอร์มหรือคำสั่งซื้อจากร้านค้าไม่สามารถทำได้ ดังนั้นให้เก็บส่วนนั้นไว้สำหรับอีเมลที่คุณส่งเอง
หากคุณไม่ต้องการสร้างคำสั่งซื้อทดสอบด้วยตัวเอง ปลั๊กอิน WordPress ฟรีจะส่งข้อความเหล่านี้ผ่าน wp_mail() ของเว็บไซต์คุณเอง ซึ่งเป็นเส้นทางเดียวกับที่อีเมลของลูกค้าใช้ และแสดงผลในแดชบอร์ด นอกจากนี้ยังตรวจพบเมื่อเว็บไซต์เริ่มส่งอีเมลประเภทที่ไม่เคยพบมาก่อน
หากอีเมลยังคงเข้าโฟลเดอร์สแปม
หากการยืนยันตัวตนผ่าน, ที่อยู่ From อยู่บนโดเมนของคุณ และอีเมลยังเข้าโฟลเดอร์สแปม ให้ดูชื่อเสียงของช่องทางที่คุณใช้ส่งอีเมล IP ของ shared hosting ที่อยู่ใน blocklist เป็นสาเหตุที่พบบ่อยเมื่อคุณยังใช้ mail() และตัวตรวจสอบ blocklistจะแสดงข้อมูลนี้ เนื้อหามีผลน้อยกว่าที่หลายคนคาดคิด การแจ้งเตือนจากฟอร์มที่มีลิงก์เดียวและข้อความสามบรรทัด มักไม่ทำให้ตัวกรองทำงานด้วยตัวเอง แต่อีเมล WooCommerce ที่ใช้เทมเพลต HTML ขนาดใหญ่, มีภาพขนาดใหญ่หนึ่งภาพ และใช้ link shortener อาจทำให้เกิดปัญหาได้
ตรวจสอบอีเมลหนึ่งฉบับ, แก้ไขตามที่รายงานแสดง แล้วส่งอีกครั้งไปยังที่อยู่ใหม่