ป้ายกำกับ: Swaks

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 ( เช่น 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 --attach
    swaks --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

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