Publish : 2 July 2021
หัวข้อในบทความนี้
- SMTP Server - ติดตั้ง Library - สิ่งที่ต้องเตรียม - เริ่มเขียนโปรแกรม - SMTP Server Settings - Gmail SMTP Server Settings - Outlook SMTP Server Settings - Live or Hotmail SMTP Server Settings
สวัสดีครับ กลับมาอีกครั้งกับบทความที่ช่วงนี้นาน ๆ จะมาซักที สำหรับวันนี้จะขอเสนอวิธีที่จะให้ ESP8266 ติดต่อกับผู้ใช้อีกวิธี (หรือ ESP32 ESP32-S2 ESP32-S3 ESP8285 ก็ "น่าจะ" ได้เช่นกัน - ใช้คำว่าน่าจะเพราะส่วนตัวยังไม่ได้ทดสอบครับ แต่ในเอกสารนั้นระบุว่าสามารถใช้ได้กับ ESP8266 ESP32 และ SAMD21) โดยปกติทั่ว ๆ ไปในตอนนี้ การที่ ESP จะติดต่อเพื่อให้ข้อมูลกับผู้ใช้ ก็จะมีวิธีหลัก ๆ คือการทำ Web Server ให้ผู้ใช้มาเชื่อมต่อและเปิดดู หรือการใช้แอปพลิเคชัน Blynk หรือการใช้ LINE Notify แต่สำหรับวันนี้เราจะกลับสู่พื้นฐานแบบสุด ๆ นั่นคือการส่ง e-mail นั่นเองครับ (ที่จริงก็คงรู้จากชื่อบทความ หรือหัวข้อกันแล้วแหละเนอะ)SMTP Server SMTP นั้นย่อมาจาก Simple Mail Transfer Protocol เป็นโปรโตคอลมาตรฐานสำหรับการส่งอีเมล ซึ่งเซิฟเวอร์ต่าง ๆ ที่ให้บริการอีเมลทั้ง gmail live(hotmail) yahoo และอื่น ๆ ล้วนต้องติดต่อที่โปรโตคอลนี้เพื่อทำการรับและส่งอีเมลที่เราใช้กันอยู่ และแน่นอนว่าหากเราต้องการให้ ESP ของเราส่งอีเมลก็จะต้องติดต่อกับโปรโตคอลนี้เช่นเดียวกัน
ติดตั้ง Library แน่นอนครับ สำหรับการทำงานนี้ก็จะต้องมีโค้ดการติดต่อกับโปรโตคอล และโค้ดทางเทคนิคมากมาย ซึ่งบางคนที่ไม่เข้าใจเรื่องระบบ Network หรือมือใหม่ก็จะพาลเบื่อเพราะไม่เข้าใจ และเพื่อความรวดเร็วในการเขียนโค้ด เราจะยก Library มาใช้กันเลย ซึ่ง Library ที่เราจะใช้นั้นมีชื่อว่า ESP-Mail-Client ผู้สร้างคือคุณ mobizt สามารถไปดาวน์โหลดได้จากที่นี่ โดย Library ตัวนี้จะไม่สามารถค้นหาใน Library Manager ได้ ต้องดาวน์โหลดเป็น zip แล้วแตกไฟล์ลากวางกันเองครับ และที่สำคัญ หากส่องโปรไฟล์คุณ mobizt ก็จะพบว่าเป็นคนไทยด้วยครับ ท่านใดอยากสนับสนุนก็คลิกที่โปรไฟล์ดูช่องทางสนับสนุนกันได้เลย
สิ่งที่ต้องเตรียม แน่นอนครับว่าการจะส่งอีเมลนั้นก็จะต้องมีผู้ส่งและผู้รับ เจ้า ESP ตัวที่จะส่งของเรานั้นก็จะต้องเขียนอีเมลขึ้นมาแล้วส่งไปที่ปลายทาง สำหรับในตัวอย่างนี้ผู้เขียนจะใช้อีเมลของร้าน คือ fitrox.electronics@gmail.com ส่งไปหาอีเมลส่วนตัวของผู้เขียน สำหรับใครที่จะใช้งานโดยเฉพาะก็ไปสมัครอีเมลใหม่ขึ้นมา ซึ่งก็คงทำเป็นทุกคนอยู่แล้วคงขอข้ามไปนะครับ สิ่งที่ต้องเตรียมพร้อมอันต่อไป หลังจากที่มีอีเมลแล้ว สำหรับ gmail ก็ต้องเตรียมต่อคือการ "Allow less secure apps" หรือ "การเข้าถึงของแอปที่มีความปลอดภัยน้อย" กันก่อน โดยคลิกไปที่ลิงค์ต่อไปนี้ https://myaccount.google.com/lesssecureapps?pli=1 แล้วทำการ ON ได้เลยครับ
หากอีเมลไหนได้ทำการเปิดใช้งาน 2FA Authenticator ไว้ก็จะไม่สามารถใช้ฟังก์ชั่นนี้ได้ ให้ไปปิดก่อนครับ (ถึงแนะนำว่าหากจะใช้งานควรสมัครอีเมลใหม่ไปเลยเพื่อทำการส่งอีเมลจาก ESP โดยเฉพาะ โดนแฮกขึ้นมาก็ไม่เสียดายเนื่องจากไม่ได้เก็บข้อมูลหรืออะไรที่สำคัญ แค่สมัครใหม่แล้วมานั่งแก้โค้ดนิดหน่อย)
สาเหตุที่ต้องเปิดไว้เนื่องจากอุปกรณ์ที่เราสร้างขึ้นมานี้เรียกง่าย ๆ แบบชาวบ้านก็คือมันไม่มีหัวนอนปลายเท้า ใครสร้างขึ้นก็ไม่รู้ โค้ดจะปลอดภัยรึเปล่าก็ไม่ทราบ ไม่ได้ติดต่อกับกูเกิลไว้หรือยิ่งใหญ่มีชื่อเสียงจนสามารถยืนยันว่าฉันปลอดภัยได้ กูเกิลจึงบล็อกเพื่อความปลอดภัยของเราเอง เราจึงต้องไปเปิดตรงนี้ก่อนพร้อมกับยอมรับความเสี่ยงที่จะเกิดขึ้นนั่นเองครับเริ่มเขียนโปรแกรม สำหรับการเขียนโปรแกรมนั้นผู้เขียนจะใช้ตัวอย่าง Basic ที่มีมาให้ใน Library มาทำการหั่น ตัด และอธิบายให้ดูได้ง่ายมากขึ้น(หรือเปล่า) ลอกเขามาไม่ต้องพูดมาก ไปดูโค้ดกันเลยครับ
เมื่ออัพโหลดโปรแกรมลงบอร์ดเสร็จและบอร์ดทำการรีเซ็ตตัวเองเสร็จแล้วก็จะทำการส่งอีเมลของเราออกไปฉบับนึงโดยทันที ลองเช็คจาก Serial Monitor ดูก็ได้
จากนั้นผู้เขียนก็ลองไปเปิดอีเมลส่วนตัวอันเป็นปลายทางที่จะทำการส่งไป ก็จะพบกับอีเมลที่ส่งมาจาก ESP8266 แล้วครับ โดยข้อมูลนั้นก็มีตามที่เราได้เขียนโค้ดไว้ คือหัวข้ออีเมลว่า "Test sending e-mail from ESP" ชื่อผู้ส่งคือ "ESP8266" อีเมลผู้ส่งคือ "fitrox.electronics@gmail.com" ข้อความในอีเมลคือ "*ESP say HELLO to you*"
เพียงเท่านี้ก็สามารถส่งอีเมลจาก ESP8266 ได้แล้วครับ ง่าย ๆ แค่นี้เอง แต่ไม่มีเพียงเท่านี้นะครับ เนื่องจาก Library ตัวนี้ยังสามารถส่งรูปภาพหรือไฟล์ได้อีกด้วย ส่วนจะทำยังไง ขอเอาไว้โอกาสหน้านะครับ เนื่องด้วยเขียนรวมตอนนี้มันจะยาวมากเกินไป หรือสามารถไปอ่านจากรายละเอียดของ Library หรือศึกษาจากตัวอย่างได้เลยครับSMTP Server Settings แน่นอนว่าบริการอีเมลนั้นก็มีผู้ให้บริการหลายเจ้า ซึ่งการจะติดต่อกับ SMTP Server ของแต่ละเจ้าก็จะมีการตั้งค่าที่ต่างกันออกไป ฉะนั้นจึงจะขอแนะนำการตั้งค่าของเจ้าที่นิยมใช้งานกัน เพื่อนำไปใช้ในโค้ดครับGmail SMTP Server Settings (ตามโค้ดตัวอย่าง) สำหรับผู้ที่ใช้ Gmail ในการส่ง
SMTP Server: smtp.gmail.com
SMTP username: Gmail address ที่ใช้ส่ง
SMTP password: Gmail password ที่ใช้ส่ง
SMTP port (TLS): 587
SMTP port (SSL): 465 (แนะนำให้ใช้ SSL)
SMTP TLS/SSL required: yesOutlook SMTP Server Settings สำหรับผู้ที่ใช้บัญชี Outlook ในการส่ง
SMTP Server: smtp.office365.com
SMTP Username: Outlook email address ที่ใช้ส่ง
SMTP Password: Outlook password ที่ใช้ส่ง
SMTP Port: 587
SMTP TLS/SSL Required: Yes
Live or Hotmail SMTP Server Settings สำหรับผู้ใช้บัญชี live หรือสมัยก่อนคือ hotmail ในการส่ง
SMTP Server: smtp.live.com
SMTP Username: Live/Hotmail email address ที่ใช้ส่ง
SMTP Password: Live/Hotmail password ที่ใช้ส่ง
SMTP Port: 587
SMTP TLS/SSL Required: Yes