หมวดหมู่: Homebrew

Testing: ส่งเมล์ผ่าน commandTesting: ส่งเมล์ผ่าน command

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
    หาก Server ของคุณบังคับให้ Login
    swaks --to [email protected] \ --from [email protected] \ --server smtp.yourserver.com:587 \ --auth LOGIN \ --auth-user your_username \ --auth-password your_password \ -tls
    
  • การส่งเมลพร้อมไฟล์แนบ
    Swaks สามารถแนบไฟล์ได้ง่าย ๆ ด้วย Option --attach
    swaks --to [email protected] \ --server mail.example.com \ --body "กรุณาดูไฟล์แนบในเมลนี้" \ --attach /path/to/report.pdf
    
  • การปรับแต่ง Header และเนื้อหา
    หากต้องการทดสอบการจัดรูปแบบเมล หรือใส่ชื่อผู้ส่งให้ดูเป็นทางการ
    swaks --to "Customer <[email protected]>" \ --from "Support Team <[email protected]>" \ --header "Subject: แจ้งเตือนการชำระเงิน" \ --body "สวัสดีครับ นี่คืออีเมลทดสอบระบบ" \ --server mail.yourserver.com
    

เทคนิคการ Debug

จุดเด่นของ Swaks คือการดู SMTP Transaction ว่าติดขัดที่ขั้นตอนไหน

ดูรายละเอียดการคุยกัน

ใส่ -d หรือ -q

  • -d จะแสดง Log การรับส่งข้อมูลระหว่างเครื่องเรากับ Server ทั้งหมด

ทดสอบเฉพาะการเชื่อมต่อ

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

อ่านเพิ่มเติม