แจ้งเตือน Gmail ไปยัง LINE Notify ด้วย Apps Script

ด้วยสถานการณ์ Covid-19 เมื่อต้อง Work From Home แล้วมีการต้องรับ-ส่งงาน และเอกสารผ่านทางอีเมล หรือจะใช้งานอีเมลในการติดต่องานเป็นหลัก ถ้าเพื่อนๆ เป็นคนหนึ่งที่ไม่อยากต้องมาเฝ้าคอยเช็คอีเมลหรือต้องมาคอยโทรศัพท์สอบถามกันว่าได้รับอีเมลหรือไม่ วันนี้ลองมาเขียน Apps Script ที่จะมาช่วยในการแจ้งเตือนอีเมลที่ถูกส่งมาจากผู้ติดต่อที่ต้องการ และให้แจ้งเตือนไปที่ LINE Notify พร้อมกับ Link Url ของเอกสารแนบที่บันทึกไว้ใน Google กันครับ แต่สิ่งที่ต้องมีก่อนเลยก็คือ Google Account เพื่อจะใช้งานบริการต่างๆ ที่ Google มีให้ใช้ฟรีก่อนครับ

ทำความรู้จักและเรียนรู้พื้นฐาน Google Apps Script ได้ ที่นี่

🤖 แต่ก่อนอื่นมาดู การทำงานของโปรแกรมนี้ กันก่อนครับ

  1. มีอีเมลใหม่เข้ามาใหม่โดยที่อีเมลยังไม่ได้เปิดอ่าน และถูกส่งมาจากผู้ติดต่อที่กำหนดไว้
  2. ทำการสร้างข้อความที่ประกอบไปด้วย หัวข้ออีเมล เนื้อหาอีเมล
  3. ตรวจสอบว่ามีเอกสารแนบหรือไม่ ถ้ามีให้ทำการบันทึกเก็บไว้ที่ Google Drive ในแฟ้มเอกสาร และนำ Link Url สำหรับ Download เอกสารไปสร้างให้เป็นแบบสั้น (Short Link Url)โดยใช้บริการของ Bitly (อย่าลืมไปลงทะเบียนเพื่อใช้งานก่อนครับ)
  4. เพิ่ม Short Link Url สำหรับ Download เอกสารแนบลงไปในข้อความที่ได้ในข้อ 2
  5. ทำการแจ้งเตือนข้อความที่ได้สร้างจากข้อ 2 – 4 ไปที่ LINE Notify

✔️ 4 สิ่งที่ต้องมีก่อนเขียน Code

  1. ID ของแฟ้มเอกสารใน Google Drive ซึ่งจะทำการเก็บเอกสารแนบที่ส่งมาพร้อมกับอีเมลสามารถดูได้จากการที่เข้าไปในแฟ้มเอกสารที่สร้างไว้ และดูในช่อง Url ด้านบนจะเจอแบบนี้ https://drive.google.com/drive/folders/ID (ให้เอามาแค่ ID ของแฟ้มเอกสาร)
  2. LINE Notify Access Token ทำตามบทความนี้ LINE Notify
  3. Bitly Access Token ทำตาม คู่มือ
  4. รายชื่ออีเมลของผู้ติดต่อที่อยากจะให้แจ้งเตือน

🚀 มาเริ่มเขียน Code กันเลย

1. สร้างโปรเจค Apps Script อย่างรวดเร็วโดยให้พิมพ์ script.new ลงในช่อง Url ของเว็บบราวเซอร์ได้เลยครับ ตั้งชื่อโปรเจคแล้วก็ลบ Code ที่มีมาให้เริ่มแรกออกทั้งหมดไปเลย จากนั้นให้กำหนดค่าตัวแปรให้กับ 4 สิ่งที่ต้องมีก่อนเขียน Code ที่ได้มาก่อนนี้ (สำหรับตัวแปร priorityContactListEmails นั้นให้เริ่มต้นด้วยอีเมลของเราเองก่อนครับ)


2. สร้างฟังก์ชันการทำงานหลักโดยให้ชื่อฟังก์ชันว่า main โดยข้างในฟังก์ชันนี้จะประกอบด้วยอีก 2 ฟังก์ชัน ได้แก่

  • ฟังก์ชัน getPriorityUnreadEmails  : ทำการตรวจสอบอีเมลที่ยังไม่ได้เปิดอ่านและอีเมลนั้นถูกส่งมาจากผู้ติดต่อที่กำหนดไว้หรือไม่ โดยจะส่งค่ากลับมาเป็น Array ของข้อความที่จะส่งไปที่ LINE Notify
  • ฟังก์ชัน sendMessageToLineNotify :  ส่งข้อความที่ประกอบด้วย อีเมลผู้ส่ง หัวข้ออีเมล เนื้อหาอีเมล และ Short Link Url สำหรับ Download เอกสารแนบ(ถ้ามี) ไปที่ LINE Notify

3. สร้างฟังก์ชัน getPriorityUnreadEmails โดยมีการทำงานของฟังก์ชันดังนี้

  • บรรทัดที่ 3 : สร้างตัวแปร priorityUnreadEmails สำหรับเก็บค่าข้อความที่จะส่งไป LINE Notify ในรูปแบบ Array
  • บรรทัดที่ 6 : ตรวจสอบจำนวนอีเมลที่ยังไม่ได้เปิดอ่าน
  • บรรทัดที่ 10 – 76 : ถ้าจำนวนอีเมลที่ยังไม่ได้เปิดอ่านไม่เท่ากับ 0 ให้นำอีเมลทั้งหมดมาเก็บไว้ในตัวแปร allPriorityInboxUnreadThreads แล้วนำอีเมลที่ยังไม่ได้เปิดอ่านนั้นมาตรวจสอบว่าถูกส่งมาจากผู้ติดต่อที่กำหนดไว้ในตัวแปร priorityContactListEmails หรือไม่ (บรรทัดที่ 23 – 26) ถ้าใช่ให้สร้างตัวแปร unreadEmailMessage ซึ่งจะเก็บข้อความที่ประกอบด้วย อีเมลผู้ส่ง / หัวข้ออีเมล / เนื้อหาอีเมล (บรรทัด 29 – 56) ถ้าหากมีเอกสารแนบให้สร้างแฟ้มเอกสารตามวัน-เดือน-ปีสำหรับเก็บเอกสารแนบ พร้อมกับสร้าง Short Link Url สำหรับ Download และเพิ่มลงในตัวแปร unreadEmailMessage (บรรทัด 50 – 56) โดยจะมีฟังก์ชันที่เรียกใช้งานอีก 2 ฟังก์ชัน คือ saveAttachmentFiles ทำการบันทึกเอกสารแนบลงในแฟ้มเอกสารใน Google Drive และนำ Link Url สำหรับ Download มาทำให้เป็น Short Link Url ด้วยฟังก์ชัน createShortUrl สำหรับบรรทัดที่ 58 – 69 จะเป็นการกำหนดว่าได้อ่านอีเมลนี้แล้ว พร้อมกับให้ Mark ด้วย Star ไว้ และทำการตอบกลับอีเมลด้วยแบบอัตโนมัติ
  • บรรทัดที่ 77 – 82 : ถ้าจำนวนอีเมลที่ยังไม่ได้เปิดอ่านเท่ากับ 0 ให้ส่งค่าตัวแปร priorityUnreadEmails = []

4. สร้างฟังก์ชัน sendMessageToLineNotify นำข้อความส่งไปที่ LINE Notify ตาม Access Token ที่กำหนดไว้


5. กดรัน Code แล้วลองมาดูตัวอย่างที่ได้กันครับ

ตัวอย่างหลังจากกด Run Code
ตัวอย่างข้อความที่ส่ง LINE Notify
ตัวอย่างอีเมลที่ตอบกลับแบบอัตโนมัติ

6. ขั้นตอนสุดท้ายกำหนดค่า Trigger ให้โปรแกรมทำงานตามช่วงเวลาที่ต้องการ เช่น ทุกๆ 30 นาที หรือทุกๆ 1 ชั่วโมง


ท้ายสุด จบแล้วครับกับการทดลองเขียนโปรแกรมด้วย Apps Script ให้ตรวจสอบอีเมลและตอบกลับ พร้อมกับส่งแจ้งไปที่ LINE Notify แบบอัตโนมัติ จะได้ไม่ต้องมาคอยนั่งเช็คอีเมลตลอดเวลา จะได้ทำงานอื่นๆ ได้อย่างต่อเนื่องยาวๆ ได้เลยครับ Happy Life…Happy Coding…🚀🚀🚀

Source Code 🔗 https://github.com/ChaiyachetU/Gmail-to-LINE-Notify/blob/main/Code.gs


ประกันรถใกล้หมดแล้ว ไม่อยากจ่ายแพง อยากได้ราคาดีที่สุดคลิกเช็คเบี้ย ฟรี !!! ที่นี่ https://bit.ly/3sEMzHO

ฝากร้านหนังสือมือสองของผมด้วยครับ เป็นหนังสือที่ซื้อมาอ่านเอง เพื่อนๆ ที่สนใจสามารถติดตามและสั่งซื้อได้ที่ https://shop.line.me/@921ijoic

โปรโมชั่น คูปองส่วนลด และดีล ที่ดีที่สุดของร้านค้าออนไลน์กว่า 300 แบรนด์พร้อมรับเงินคืนจาก ShopBackhttps://bit.ly/3c4tlmV

Ruk-Com จดโดเมน-เช่าโฮสต์ ราคาประหยัด พร้อมให้บริการใน 1 นาทีhttp://bit.ly/36q8A12