ตั้งค่า DKIM, SPF และ DMARC ของเมลบน Plesk
อีเมลที่ส่งจากเว็บไซต์ เช่น อีเมลยืนยันคำสั่งซื้อและอีเมลรีเซ็ตรหัสผ่าน มักตกไปอยู่ในกล่องสแปมของผู้รับ สาเหตุหลักคือผู้ให้บริการอีเมลปลายทางไม่สามารถยืนยันได้ว่าอีเมลนั้นถูกส่งมาจากเซิร์ฟเวอร์ที่ได้รับอนุญาตจริง
สามระเบียนที่แก้ปัญหานี้คือ SPF บอกว่าเซิร์ฟเวอร์ใดส่งแทนโดเมนได้ DKIM ลงลายเซ็นดิจิทัลพิสูจน์ว่าไม่ถูกแก้ไขระหว่างทาง และ DMARC บอกว่าให้ทำอย่างไรเมื่อสองอย่างแรกไม่ผ่าน
สิ่งที่ต้องเตรียม
- Plesk Obsidian และสิทธิ์ผู้ดูแลระบบ
- สิทธิ์แก้ไข DNS ของโดเมน
- เมลเซิร์ฟเวอร์ของ Plesk ที่ทำงานอยู่
ขั้นตอนที่ 1: เปิด DKIM ใน Plesk
เข้า Plesk ไปที่ Domains เลือกโดเมน แล้ว Mail Settings ติ๊กที่ Use DKIM spam protection system to sign outgoing email messages แล้วกด OK
เปิดพร้อมกันทุกโดเมนได้ที่ Tools & Settings แล้ว Mail Server Settings
# ตรวจจากบรรทัดคำสั่ง
plesk bin subscription --info example.com | grep -i dkim
# เปิดผ่านคำสั่ง
plesk bin subscription -u example.com -dkim-sign true
เมื่อเปิดแล้ว Plesk จะสร้างคู่กุญแจและเพิ่มระเบียน DNS ให้อัตโนมัติหากโดเมนใช้ DNS ของ Plesk เอง หากใช้ DNS ภายนอก เช่น Cloudflare ต้องคัดลอกไปใส่เอง
ขั้นตอนที่ 2: หาค่าระเบียน DKIM
sudo cat /etc/domainkeys/example.com/default.pub 2>/dev/null
# หรือ
sudo plesk db "SELECT * FROM dns_recs WHERE host LIKE '%_domainkey%';"
หรือดูในหน้า Plesk ที่ Domains แล้วเลือกโดเมน แล้ว DNS Settings มองหาระเบียนชนิด TXT ที่ชื่อขึ้นต้นด้วย default._domainkey
ค่าที่ได้จะมีรูปแบบประมาณนี้
default._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ..."
นำไปใส่ใน DNS ที่ใช้จริง
ขั้นตอนที่ 3: ตั้งระเบียน SPF
SPF บอกว่า IP ใดได้รับอนุญาตให้ส่งอีเมลแทนโดเมนนี้
example.com. TXT "v=spf1 a mx ip4:203.0.113.10 -all"
ความหมายของแต่ละส่วน
aอนุญาต IP ที่ระเบียน A ของโดเมนชี้ไปmxอนุญาต IP ของเมลเซิร์ฟเวอร์ที่ระบุใน MXip4:ระบุ IP โดยตรง-allปฏิเสธผู้ส่งอื่นทั้งหมดอย่างเด็ดขาด ส่วน~allคือให้ผ่านแต่ทำเครื่องหมายว่าน่าสงสัย
หากใช้บริการส่งอีเมลภายนอกด้วย ต้องเพิ่มเข้าไป
"v=spf1 a mx include:_spf.google.com include:sendgrid.net ip4:203.0.113.10 -all"
ข้อจำกัดสำคัญ โดเมนหนึ่งต้องมีระเบียน SPF เพียงหนึ่งรายการ หากมีสองรายการจะถือว่าไม่ถูกต้องทั้งคู่ ให้รวมทุกอย่างไว้ในบรรทัดเดียว และจำนวนการค้นหา DNS ที่เกิดจาก include ต้องไม่เกิน 10 ครั้ง
ขั้นตอนที่ 4: ตั้งระเบียน DMARC
เริ่มจากโหมดสังเกตการณ์ก่อนเสมอ อย่าเริ่มด้วยการปฏิเสธเพราะอาจทำให้อีเมลที่ถูกต้องถูกทิ้ง
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; pct=100"
เก็บข้อมูลอย่างน้อยสองสัปดาห์ อ่านรายงานที่ส่งมา ตรวจว่าไม่มีระบบที่ส่งอีเมลแทนโดเมนคุณโดยที่คุณไม่รู้ตัว
เมื่อแน่ใจแล้วจึงเข้มขึ้นทีละขั้น
# ขั้นที่สอง กักไว้ในสแปม 25% ของที่ไม่ผ่าน
"v=DMARC1; p=quarantine; pct=25; rua=mailto:[email protected]"
# ขั้นที่สาม ทั้งหมด
"v=DMARC1; p=quarantine; pct=100; rua=mailto:[email protected]"
# ขั้นสุดท้าย ปฏิเสธ
"v=DMARC1; p=reject; pct=100; rua=mailto:[email protected]"
ขั้นตอนที่ 5: ตรวจสอบว่าระเบียนถูกต้อง
dig +short TXT example.com | grep spf
dig +short TXT default._domainkey.example.com
dig +short TXT _dmarc.example.com
ตรวจว่า Reverse DNS ของ IP เซิร์ฟเวอร์ชี้กลับมาที่ชื่อเมลเซิร์ฟเวอร์ ซึ่งเป็นสิ่งที่ผู้ให้บริการอีเมลรายใหญ่ตรวจ
dig +short -x 203.0.113.10
dig +short mail.example.com
ทั้งสองต้องสอดคล้องกัน หากไม่ตรง ให้ติดต่อผู้ให้บริการเซิร์ฟเวอร์เพื่อขอตั้ง PTR Record
ขั้นตอนที่ 6: ทดสอบการส่งจริง
ส่งอีเมลทดสอบไปยังบริการตรวจสอบ เช่น mail-tester.com แล้วดูคะแนนและรายละเอียด
หรือส่งหาตัวเองที่ Gmail แล้วดู Original Message
echo "ทดสอบการส่งอีเมล" | mail -s "ทดสอบ DKIM" -r [email protected] [email protected]
ใน Gmail เปิดอีเมล กดเมนูสามจุด เลือก Show original แล้วดูส่วนหัว
SPF: PASS with IP 203.0.113.10
DKIM: 'PASS' with domain example.com
DMARC: 'PASS'
ทั้งสามต้องเป็น PASS หากมีอันใดไม่ผ่าน ส่วนหัวจะบอกเหตุผล
ขั้นตอนที่ 7: ตรวจ Log เมื่อมีปัญหา
sudo tail -50 /var/log/maillog
sudo tail -50 /usr/local/psa/var/log/maillog
# ดูคิวอีเมลที่ค้าง
sudo /usr/local/psa/admin/sbin/mailqueuemng -i | head -20
# ดูจำนวนอีเมลในคิว
sudo /usr/local/psa/admin/sbin/mailqueuemng -s
คิวที่สะสมจำนวนมากมักหมายถึงปลายทางปฏิเสธ หรือ IP ของเซิร์ฟเวอร์ติดบัญชีดำ
ขั้นตอนที่ 8: ตรวจว่า IP ติดบัญชีดำหรือไม่
# ตรวจกับรายการที่ใช้กันแพร่หลาย
for bl in zen.spamhaus.org bl.spamcop.net b.barracudacentral.org; do
q=$(echo 203.0.113.10 | awk -F. '{print $4"."$3"."$2"."$1}')
r=$(dig +short "$q.$bl")
printf '%-30s %s\n' "$bl" "${r:-สะอาด}"
done
หากติดบัญชีดำ ให้หาสาเหตุก่อนขอถอด มักเกิดจากบัญชีอีเมลที่ถูกเจาะแล้วถูกใช้ส่งสแปม ตรวจด้วย
sudo grep 'sasl_username' /var/log/maillog | awk -F'sasl_username=' '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -rn | head
ปัญหาที่พบบ่อย
DKIM ไม่ผ่านทั้งที่เปิดแล้ว
ระเบียน DNS ยังไม่เผยแพร่หรือคัดลอกไม่ครบ ค่า public key ยาวมากและมักถูกตัด ตรวจด้วย dig +short TXT default._domainkey.example.com ว่าได้ค่าครบ
SPF ไม่ผ่าน
ตรวจว่ามีระเบียน SPF เพียงหนึ่งรายการ และ IP ที่ใช้ส่งจริงอยู่ในรายการ ดู IP ที่ใช้ส่งได้จากส่วนหัวของอีเมลทดสอบ
อีเมลยังตกสแปมแม้ทั้งสามผ่าน
ตรวจเนื้อหาอีเมล หลีกเลี่ยงคำที่ตัวกรองสแปมไม่ชอบ ใส่ทั้งเวอร์ชันข้อความธรรมดาและ HTML และตรวจว่า IP ไม่ติดบัญชีดำ ชื่อเสียงของ IP ใหม่ต้องใช้เวลาสร้างสักระยะ
รายงาน DMARC อ่านไม่ออก
รายงานเป็น XML ที่บีบอัดไว้ ใช้บริการวิเคราะห์รายงาน DMARC ที่มีให้ใช้ฟรีหลายเจ้า หรือแตกไฟล์แล้วอ่านด้วยเครื่องมือแปลง
ต้องการระบบอีเมลองค์กรที่ส่งถึงกล่องจดหมายแน่นอน ติดต่อ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี








