[RHEL] mailx ส่งเมล์จาก Linux แบบ command line

บางครั้ง เราอาจะหลีกเลี่ยงไม่ได้ที่ต้องทำ Mail Notify แจ้งเตือนต่างๆ เช่น crontab ทำงานสำเร็จ หรือจะแนบผลลัพธ์การทำงานใส่เข้ามา เพื่อความสะดวก ไม่ต้องเข้าไปตรวจผลที่เครื่อง Server ครับ โดยการ Implement สามารถทำได้หลายวิธีเลยครับ อาทิ เช่น

  1. เขียน lib java / python เข้ามาช่วยในการจัดการส่งเมล์
  2. ใช้ Tool Monitor เข้ามาช่วยจับตาม Event ที่กำหนด และให้ Trigger ส่งเมล์
  3. ลองใช้ command จาก package ที่มีคนทำไว้ให้ครับ

สำหรับผมใน Blog นี้ขอข้อที่ 3 นะครับ คือ ลองทดสอบส่งเมล์จาก Linux แทนครับ โดย Package Mail Client ของ Linux มีอยู่หลายค่ายนะครับ ใน Blog นี้ใช้ mailx โดย config ตั้งค่ากับ gmail ครับ

ขั้นตอนการติดตั้ง mailx

  • update package ล่าสุดด้วยคำสั่ง
dnf -y update
  • ติดตั้ง package mailx ด้วยคำสั่ง
dnf install -y mailx
  • สร้าง symbolic link
ln -s /bin/mailx /bin/email
  • สร้าง Config File ที่ Path /etc/mail.rc
nano /etc/mail.rc
  • ในไฟล์ mail.rc กำหนด Config ดังนี้
set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set smtp-auth-user=USERNAME@YOURDOMAIN.COM>
set smtp-auth-password=YOURPASSWORD
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
  • สำหรับ Account ของ Gmail ที่จะผูกไว้ต้องกำหนด Allow Less Secure App ด้วยนะครับ

ทดสอบการใช้งาน

  • สามารถทดสอบการใช้งาน โดยใช้คำสั่ง ดังนี้
echo "Your message" | mail -v -s "Message Subject" email1@address
  • ถ้าจะส่งหลาย Email ปรับคำสั่ง ดังนี้
echo "Your message" | mail -v -s "Message Subject" email1@address email2@address

จบไปแล้ว ส่งเมล์จาก Linux แบบ command line ด้วย mailx ครับ สำหรับ Blog ถัดเป็นเป็นตัวอย่างการนำไปใช้จริงครับ


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.