หมวดหมู่: Cloud Computing

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

    BASH / Shell

    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

    BASH / Shell

    swaks --to [email protected] \ --server mail.example.com \ --body "กรุณาดูไฟล์แนบในเมลนี้" \ --attach /path/to/report.pdf
    
  • การปรับแต่ง Header และเนื้อหา
    หากต้องการทดสอบการจัดรูปแบบเมล หรือใส่ชื่อผู้ส่งให้ดูเป็นทางการ

    BASH / Shell

    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

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