Natcha Luang - Aroonchai

Trust me I'm Petdo

Bangkok, Thailand

[Review] บริการส่งอีเมลฟรีจาก Mailgun

สำหรับนักพัฒนาหลาย ๆ คนอาจจะต้องเคยเจอกับปัญหาการส่งอีเมลจาก server กันมามากบ้างน้อยบ้าง ทั้งส่งไม่ออก, ส่งได้แต่ติด spam/junk และอื่น ๆ อีกมากมาย ปัญหาเหล่านี้ล้วนแต่สร้างความปวดหัวให้กับนักพัฒนา เพราะแทนที่จะได้ focus ที่เนื้องาน กลับต้องมาเสียเวลาแก้ไขปัญหาส่งอีเมลแทนเสียอย่างนั้น

วันนี้ผมเลยมารีวิววิธีการใช้งานบริการส่งอีเมล แถมการันตีด้วยว่าไม่ติด spam (ถ้า user ไม่ mark spam ไว้น่ะ) และไม่ต้องปวดหัวกับการ setup SMTP server เลย เพียงแต่ใช้งาน cURL ได้เท่านั้น มาดูวิธีการสมัครและใช้งานบริการ Mailgun กันดีกว่าครับ

เดิมทีบทความนี้ผมเขียนเกี่ยวกับวิธี setup Ghost กับ Mailgun แต่ว่าเนื่องจากผมไม่ได้ใช้งาน Ghost อีกต่อไปแล้วจึงขอ rewrite บทความนี้ให้เป็นเรื่องของ Mailgun โดยเฉพาะเลย

สารบัญ

รู้จักกับ Mailgun

Mailgun เป็นบริการส่งอีเมลผ่านทาง API โดยที่เราไม่จำเป็นต้องติดตั้งอะไรเพิ่มเติมใน server เลย เพียงแค่สามารถเรียกตัว API ที่เป็น RESTful service ได้ก็สามารถส่งอีเมลได้แล้ว บริการของ Mailgun จะให้เราใช้งานฟรีที่ 10,000 request ต่อเดือน หลังจากนั้นจะต้องเสียค่าบริการที่ $0.00050 ต่ออีเมลและจะเสียลดลงไปเรื่อย ๆ (ยิ่งส่งมากยิ่งถูกลง) ใครที่คิดว่าจะใช้ส่งอีเมลเยอะ ๆ สามารถคำนวณค่าบริการรายเดือนได้ ที่นี่

Setup domain name

ในการใช้งาน Mailgun เราจำเป็นต้องสมัครสมาชิกและ setup domain name ของ website ที่เราจะใช้งานกันก่อน ขั้นตอนการสมัครสมาชิกไม่ได้ซับซ้อนอะไรครับ ที่นี่

หลังจากที่เราสร้างบัญชีกันเรียบร้อยแล้วต่อจากนั้นเราต้องเพิ่ม domain name ที่เราต้องการใช้งานสำหรับส่งอีเมล ไปที่หน้า เพิ่ม domains

Domains

คลิกที่ Add New Domain จะมีฟอร์มสำหรับใส่ domain name แบบนี้

Add New Domain

จากนั้น Mailgun จะบอกให้เรา Setup DNS records ตามนี้

  • TXT เพื่อยืนยันความเป็นเจ้าของ domain name
  • CNAME สำหรับ tracking หรือ unsubscribe
  • MX สำหรับใช้รับอีเมล (กรณีที่เราใช้เป็นกล่องรับจดหมาย)

การตั้งค่า DNS records จะขึ้นอยู่กับแต่ละผู้ให้บริการ ถ้าใครที่ใช้ CloudFlare แบบใน บทความที่แล้ว ก็เพิ่มในขั้นตอนเพิ่ม A/AAAA records เพียงแต่เปลี่ยนให้เป็น TXT, CNAME และ MX ครับ

หลังจาก setup DNS records เรียบร้อยแล้วให้เข้าไปดูที่สถานะของ domain ว่าการ verify เรียบร้อยแล้วหรือยัง โดยที่เราจะเริ่มใช้งานได้ก็ต่อเมื่อ domain ได้ทำการ verify เป็นสถาน OK แบบนี้

Domain Information

ทดลองส่งอีเมล

หลังจากที่สถานะของ domain พร้อมสำหรับใช้งานแล้ว เราก็มาทดลองส่งอีเมลด้วย cURL ผ่านทาง API ของ Mailgun ดีกว่าครับ ในหน้า domain information จะมี API key เราต้องใช้ key ตัวนี้สำหรับ authenticate กับ API server ของ Mailgun

ใช้คำสั่ง cURL ใน terminal ในการส่งอีเมลตามนี้

$ curl -s --user 'api:yourAPIKey' \
  https://api.mailgun.net/v3/yourDomainNamw/messages \
  -F from='yourName <yourSendingAddress>' \
  -F to=yourReceiveAddress \
  -F subject='Hello, world!' \
  -F text='Testing some Mailgun awesomeness!'

มีตัวแปรที่ต้องเปลี่ยนตามนี้

  • yourAPIKey ให้ใส่ API key ที่อยู่ในหน้า domain information
  • yourName ชื่อผู้
  • yourSendingAddress ที่อยู่อีเมลของผู้ส่ง (ต้องอยู่ในรูปแบบของที่อยู่อีเมลที่ถูกต้อง: [email protected])
  • yourReceiveAddress ที่อยู่อีเมลของผู้รับ (ต้องอยู่ในรูปแบบของที่อยู่อีเมลที่ถูกต้อง: [email protected])

ทดลองเอาไปปรับใช้งานกันได้ ถ้าใครที่ติดปัญหาตรงไหนสามารถสอบถามเพิ่มเติมเข้ามาได้ครับ

Comments