AWS: SES การตั้งค่า SMTP พื้นฐาน

SMTP ย่อมาจาก Simple Mail Transfer Protocol ซึ่งคือมาตราฐานสำหรับการรับส่ง Email บน Internet นั้นเอง ปัจจุบันระบบส่งเมลทั่วโลกต่างใช้ SMTP ในการรับและส่งข้อมูลเป็นมาตราฐานเดียวกันหมด
2021.12.01

SMTP คืออะไร ?

SMTP ย่อมาจาก Simple Mail Transfer Protocol ซึ่งคือมาตราฐานสำหรับการรับส่ง Email บน Internet นั้นเอง ปัจจุบันระบบส่งเมลทั่วโลกต่างใช้ SMTP ในการรับและส่งข้อมูลเป็นมาตราฐานเดียวกันหมด

และในบล็อกนี้ผมก็จะมาสอนวิธีการตั้งค่าการใช้งานและส่งอีเมลบนเซอร์วิส AWS SES กันครับ

วิธีการตั้งค่าใช้งาน SMTP

ในขั้นตอนแรกเราจะทำการสร้าง SMTP credential กันก่อนเปรียบเสมือนการรับรองความปลอดภัยในการใช้งาน SMTP บน SES

  • ให้เราเข้าไปที่หัวข้อ Account Dashboard และเลื่อนลงมาด้านล่างสุดเพื่อกดปุ่ม
  • จากนั้นทำการแก้ไขตัวเลขที่อยู่หลัง user. ให้เป็นชื่อที่เราต้องการเพื่อให้ง่ายต่อการจดจำและใช้งานว่านี้คือ User ของเรา (ในตัวอย่างผมจะใส่เป็นชื่อผมนะครับ) และกดปุ่ม Create ได้เลยครับ
  • เมื่อเราสร้างเสร็จนะครับเราก็จะได้ SMTP Username และ SMTP Password มานะครับสำหรับเชื่อมต่อกับเซิร์ฟเวอร์ในการส่งเมลและให้เรากดปุ่ม Download Credentials นะครับเพื่อเป็นการบันทึก SMTP Username และ Password กรณีที่ต้องการใช้งานก็จะได้สามารถก้อปมาใช้งานได้เลย
  • ขั้นตอนถัดไปให้เราเปิดโปรแกรม Putty ที่เชื่อมต่อกับ Instance ของเราและกรอกข้อมูล SMTP ที่เราได้มาก่อนหน้านี้ลงไปโดยมีฟอร์มตามด้านล่างนี้เพื่อทำการกำหนดค่า SMTP

ในขั้นตอนนี้เราจำเป็นที่จะต้องสร้าง Instance ใน EC2 ก่อนจากนั้นนำมาเชื่อมต่อกับ Putty เพื่อใช้งาน สามารถดูรายละเอียดเพิ่มเติมได้ที่ How to install Amazon LINUX on EC2

SMTP_USER=AKIxxxxxxxx
SMTP_PASSWORD=xxxxxxxxx

  • ตามด้วยคำสั่งด้านล่างเพื่อทำการแปลงข้อมูล SMTP ของเราให้มีการเข้ารหัสเพื่อเพิ่มความปลอดภัยในการใช้งาน เมื่อรันคำสั่งนี้เสร็จเราจะได้ข้อมูลที่มาการเข้ารหัสในรูปแบบ base64 เพื่อนำมาใช้งานการส่งอีเมลในขั้นตอนถัดไป
printf "%s\0%s\0%s" ${SMTP_USER} ${SMTP_USER} ${SMTP_PASSWORD} | openssl base64 -e | tr -d '\n'; echo

  • จากนั้นให้เราใช้คำสั่ง
vi mail.txt

เพื่อเปิดใช้งานไฟล์นี้ และเพิ่มข้อมูลสำหรับทดสอบการส่งอีเมลแบบ SMTP ซึ่งจะมีฟอร์มข้อมูลดังนี้

EHLO localhost
AUTH PLAIN xxxxBASE64xxxx
MAIL FROM: 
RCPT TO: 
DATA
SUBJECT: TestMail

TEST MAIL from SES
.

QUIT

AUTH PLAIN: ให้เราใส่ข้อมูล SMTP User แบบเข้ารหัส base64 ที่เราได้จากคำสั่งก่อนหน้านี้
MAIL FROM: อีเมลผู้ส่ง
RCPT TO: อีเมลผู้รับ
SUBJECT: หัวข้อจดหมาย
BODY: เนื้อหาที่ต้องการจะส่ง (ซึ่งจะอยู่บรรทัดถัดไปจาก SUBJECT ถ้าเราใส่ข้อมูลหลังจากบรรทัดนี้จะถือว่าเป็นข้อมูล Body ทั้งหมด)

  • และเมื่อเราทำการใส่ข้อมูลเพื่อทดสอบการส่งอีเมลเสร็จแล้ว ให้เราใช้คำสั่ง
cat mail.txt | openssl s_client -starttls smtp -crlf -connect email-smtp.ap-southeast-1.amazonaws.com:587

โดยใส่ข้อมูลที่ตรงกับ Host name และ Port number ของเราซึ่งสามารถดูได้จากเมนู Account dashboard ที่อยู่ในเซอร์วิส SES ตามรูปภาพด้านล่างนี้

เมื่อใส่ข้อมูลถูกต้องแล้วให้เรารันคำสั่งเพื่อทดสอบการส่งอีเมลได้เลย

  • ถ้าการส่งอีเมลสำเร็จระบบก็จะแสดงข้อความ 250 Ok เป็นการยืนยันว่าการส่งอีเมลสำเร็จแล้ว

  • ในขั้นตอนสุดท้ายให้เราลองเข้าไปเช็คกล่องข้อความของอีเมลที่เราทำการส่งไปว่า มีข้อความอีเมลเข้ามาหรือไม่ ? ถ้าพบว่ามีข้อความใหม่ส่งเข้ามาและเนื้อหาตรงกับที่เราได้ทำการตั้งค่าไว้ก็เป็นอันเสร็จสิ้นการทดสอบใช้งานการส่งอีเมลด้วยมาตรฐาน SMTP

เพียงเท่านี้เราก็สามารถใช้งานการส่งอีเมลของเซอร์วิส SES ด้วยมาตรฐาน SMTP ที่รองรับการใช้งานกันทั่วโลกได้แล้วครับ ไว้ผมกันใหม่กับเนื้อหาบล๊อกครั้งถัดไปนะครับ สวัสดีครับ

ดูรายละเอียดเพิ่มเติมได้ที่นี่ สอบถามเพิ่มเติมเกี่ยวกับ AWS คลิกที่นี่