Swaks (Swiss Army Knife for SMTP) เป็นเครื่องมือ Command-line ที่ทรงพลังและยืดหยุ่นมากสำหรับการทดสอบการส่ง Email หรือตรวจสอบการทำงานของ SMTP Server ครับ ยิ่งตอนทำ mail server บน server Linux ที่ไม่มี gui ให้ใช้นี่มันเหมาะมาก ๆ เลย
การติดตั้ง Swaks
หากยังไม่ได้ติดตั้ง สามารถลงได้ง่าย ๆ ผ่าน Package Manager ของระบบปฏิบัติการ
- Ubuntu/Debian:
sudo apt install swaks - CentOS/RHEL:
sudo yum install swaks - macOS:
brew install swaks
โครงสร้างคำสั่งพื้นฐาน
คำสั่งที่ง่ายที่สุดในการทดสอบว่า SMTP Server ปลายทางรับเมลหรือไม่
swaks –to [email protected] –from [email protected] –server mail.yourserver.com
การใช้งานในกรณีต่าง ๆ ( แบบละเอียด )
- การส่งผ่าน SMTP ที่ต้องใช้ Authentication ( เช่น Gmail, Outlook )
หาก Server ของคุณบังคับให้ Login ( ส่วนใหญ่ใช้พอร์ต 587 หรือ 465 )swaks --to [email protected] \ --from [email protected] \ --server smtp.yourserver.com:587 \ --auth LOGIN \ --auth-user your_username \ --auth-password your_password \ -tls
- การส่งเมลพร้อมไฟล์แนบ ( Attachment )
Swaks สามารถแนบไฟล์ได้ง่าย ๆ ด้วย Option--attachswaks --to [email protected] \ --server mail.example.com \ --body "กรุณาดูไฟล์แนบในเมลนี้" \ --attach /path/to/report.pdf
- การปรับแต่ง Header และเนื้อหา ( Custom Content )
หากต้องการทดสอบการจัดรูปแบบเมล หรือใส่ชื่อผู้ส่งให้ดูเป็นทางการswaks --to "Customer <[email protected]>" \ --from "Support Team <[email protected]>" \ --header "Subject: แจ้งเตือนการชำระเงิน" \ --body "สวัสดีครับ นี่คืออีเมลทดสอบระบบ" \ --server mail.yourserver.com
เทคนิคการ Debug ( สำหรับ Admin )
จุดเด่นของ Swaks คือการดู SMTP Transaction ว่าติดขัดที่ขั้นตอนไหน
ดูรายละเอียดการคุยกัน ( Verbose )
ใส่ -d หรือ -q ( Quiet )
-dจะแสดง Log การรับส่งข้อมูลระหว่างเครื่องเรากับ Server ทั้งหมด ( เหมาะมากเวลาเช็ค Error 5xx หรือ 4xx )
ทดสอบเฉพาะการเชื่อมต่อ ( ไม่ส่งจริง )
swaks --server mail.yourserver.com --quit-after RCPT
ตารางสรุป Options ที่ใช้บ่อย
| Option | คำอธิบาย |
--to | อีเมลผู้รับ |
--from | อีเมลผู้ส่ง |
--server | ที่อยู่ SMTP Server (ใส่ port ต่อท้ายได้ เช่น :25) |
--auth | วิธีการยืนยันตัวตน (เช่น LOGIN, PLAIN) |
-tlsc | บังคับใช้ TLS ตั้งแต่เริ่มเชื่อมต่อ (สำหรับ Port 465) |
-t | ระบุเวลา Timeout |
อ่านเพิ่มเติม