
ด้วยสถานการณ์ Covid-19 เมื่อต้อง Work From Home แล้วมีการต้องรับ-ส่งงาน และเอกสารผ่านทางอีเมล หรือจะใช้งานอีเมลในการติดต่องานเป็นหลัก ถ้าเพื่อนๆ เป็นคนหนึ่งที่ไม่อยากต้องมาเฝ้าคอยเช็คอีเมลหรือต้องมาคอยโทรศัพท์สอบถามกันว่าได้รับอีเมลหรือไม่ วันนี้ลองมาเขียน Apps Script ที่จะมาช่วยในการแจ้งเตือนอีเมลที่ถูกส่งมาจากผู้ติดต่อที่ต้องการ และให้แจ้งเตือนไปที่ LINE Notify พร้อมกับ Link Url ของเอกสารแนบที่บันทึกไว้ใน Google กันครับ แต่สิ่งที่ต้องมีก่อนเลยก็คือ Google Account เพื่อจะใช้งานบริการต่างๆ ที่ Google มีให้ใช้ฟรีก่อนครับ
ทำความรู้จักและเรียนรู้พื้นฐาน Google Apps Script ได้ ที่นี่
🤖 แต่ก่อนอื่นมาดู การทำงานของโปรแกรมนี้ กันก่อนครับ
- มีอีเมลใหม่เข้ามาใหม่โดยที่อีเมลยังไม่ได้เปิดอ่าน และถูกส่งมาจากผู้ติดต่อที่กำหนดไว้
- ทำการสร้างข้อความที่ประกอบไปด้วย หัวข้ออีเมล เนื้อหาอีเมล
- ตรวจสอบว่ามีเอกสารแนบหรือไม่ ถ้ามีให้ทำการบันทึกเก็บไว้ที่ Google Drive ในแฟ้มเอกสาร และนำ Link Url สำหรับ Download เอกสารไปสร้างให้เป็นแบบสั้น (Short Link Url)โดยใช้บริการของ Bitly (อย่าลืมไปลงทะเบียนเพื่อใช้งานก่อนครับ)
- เพิ่ม Short Link Url สำหรับ Download เอกสารแนบลงไปในข้อความที่ได้ในข้อ 2
- ทำการแจ้งเตือนข้อความที่ได้สร้างจากข้อ 2 – 4 ไปที่ LINE Notify
✔️ 4 สิ่งที่ต้องมีก่อนเขียน Code
- ID ของแฟ้มเอกสารใน Google Drive ซึ่งจะทำการเก็บเอกสารแนบที่ส่งมาพร้อมกับอีเมลสามารถดูได้จากการที่เข้าไปในแฟ้มเอกสารที่สร้างไว้ และดูในช่อง Url ด้านบนจะเจอแบบนี้ https://drive.google.com/drive/folders/ID (ให้เอามาแค่ ID ของแฟ้มเอกสาร)
- LINE Notify Access Token ทำตามบทความนี้ LINE Notify
- Bitly Access Token ทำตาม คู่มือ
- รายชื่ออีเมลของผู้ติดต่อที่อยากจะให้แจ้งเตือน
🚀 มาเริ่มเขียน 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 แล้วลองมาดูตัวอย่างที่ได้กันครับ



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