ระดับการเขียนโค้ด: ผู้เริ่มต้น
ระยะเวลา: 10 นาที
ประเภทโปรเจ็กต์: การทำงานอัตโนมัติด้วยเมนูที่กำหนดเอง
หากต้องการเรียนรู้ผ่านวิดีโอ
ช่องนักพัฒนาแอปของ Google Workspace มีวิดีโอเกี่ยวกับกลเม็ดเคล็ดลับ และฟีเจอร์ล่าสุด
|
วัตถุประสงค์
- ทำความเข้าใจสิ่งที่โซลูชันทำ
- ทำความเข้าใจสิ่งที่บริการ Apps Script ทําภายใน โซลูชัน
- ตั้งค่าสคริปต์
- เรียกใช้สคริปต์
เกี่ยวกับโซลูชันนี้
ป้อนข้อมูลจาก Google ชีตลงในเทมเพลตอีเมลโดยอัตโนมัติ จะส่งจากบัญชี Gmail ของคุณ เพื่อให้คุณสามารถตอบกลับ คำตอบจากผู้รับ
สำคัญ: ตัวอย่างการผสานอีเมลนี้จะอยู่ภายใต้ขีดจำกัดอีเมลที่อธิบายไว้ ในหัวข้อโควต้าสำหรับบริการของ Google
วิธีการทำงาน
คุณสร้างเทมเพลตฉบับร่างใน Gmail ที่มีตัวยึดตำแหน่งที่ จะสอดคล้องกับข้อมูลในสเปรดชีตของชีต ส่วนหัวของแต่ละคอลัมน์ ในชีตแสดงถึงแท็กตัวยึดตำแหน่ง สคริปต์จะส่งข้อมูลสำหรับ แต่ละตัวยึดตำแหน่งจากสเปรดชีตไปยังตำแหน่งของ แท็กตัวยึดตำแหน่งในฉบับร่างของอีเมล
บริการ Apps Script
โซลูชันนี้ใช้บริการต่อไปนี้
- บริการ Gmail - รับ อ่าน
และส่งอีเมลฉบับร่างที่ต้องการส่งถึงผู้รับ
- หากอีเมลของคุณมีอักขระ Unicode เช่น อีโมจิ ให้ใช้ บริการอีเมลแทน ดูวิธีอัปเดต โค้ดเพื่อรวมอักขระ Unicode ในอีเมล
- บริการสเปรดชีต - กรอกข้อมูลในอีเมล ตัวยึดตำแหน่งที่มีข้อมูลที่ปรับเปลี่ยนในแบบของคุณสำหรับ ของผู้รับแต่ละคน
ข้อกำหนดเบื้องต้น
หากต้องการใช้ตัวอย่างนี้ คุณต้องมีข้อกำหนดเบื้องต้นต่อไปนี้
- บัญชี Google (บัญชี Google Workspace อาจ ต้องได้รับการอนุมัติจากผู้ดูแลระบบ)
- เว็บเบราว์เซอร์ที่มีการเข้าถึงอินเทอร์เน็ต
ตั้งค่าสคริปต์
สร้างโปรเจ็กต์ Apps Script
- คลิกปุ่มต่อไปนี้เพื่อทำสำเนา
สเปรดชีตตัวอย่างของ Gmail/ชีต Mail Merge
โครงการ Apps Script สำหรับขั้นตอนนี้
จะแนบกับสเปรดชีต
ทำสำเนา - ในสเปรดชีตที่คัดลอก ให้อัปเดตคอลัมน์ผู้รับด้วยอีเมล ที่ต้องการใช้ในการผสานอีเมล
- (ไม่บังคับ) เพิ่ม แก้ไข หรือนำคอลัมน์ออกเพื่อปรับแต่งข้อมูลที่ต้องการ รวมไว้ในเทมเพลตอีเมลของคุณ
หากเปลี่ยนชื่อผู้รับหรืออีเมล ส่งแล้ว คุณต้องอัปเดตโค้ดที่เกี่ยวข้องใน โครงการ Apps Script คุณสามารถเปิด Apps Script ได้ จากสเปรดชีตโดย คลิกส่วนขยาย > Apps Script
สร้างเทมเพลตอีเมล
- สร้างอีเมลฉบับร่างในบัญชี Gmail วิธีรวมข้อมูล
จาก
สเปรดชีตในอีเมล ให้ใช้ตัวยึดตำแหน่งที่สอดคล้องกับชื่อคอลัมน์
ล้อมรอบด้วยวงเล็บปีกกา เช่น
{{First name}}
- หากจัดรูปแบบข้อความในอีเมล คุณต้องจัดรูปแบบตัวยึดตำแหน่งด้วย วงเล็บ
- ตัวยึดตำแหน่งจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ รวมถึงต้องตรงกับส่วนหัวของคอลัมน์ทุกประการ
- คัดลอกบรรทัดเรื่องของอีเมลฉบับร่าง
เรียกใช้สคริปต์
- ในสเปรดชีต ให้คลิก Mail Merge > ส่งอีเมล คุณอาจต้องรีเฟรชหน้าเว็บเพื่อใช้เมนูที่กำหนดเองนี้ ปรากฏขึ้น
เมื่อมีข้อความแจ้ง ให้ให้สิทธิ์สคริปต์ หากหน้าจอขอความยินยอม OAuth แสดงคำเตือน แสดงว่าแอปนี้ยังไม่ได้รับการยืนยัน ดำเนินการต่อโดยเลือกขั้นสูง > ไปที่ {Project Name} (ไม่ปลอดภัย)
คลิก Mail Merge > ส่งอีเมล อีกครั้ง
วางบรรทัดเรื่องของเทมเพลตอีเมล แล้วคลิกตกลง
หากใช้ตัวกรองกับชีต สคริปต์จะยังคงส่งอีเมล แต่จะไม่เพิ่มการประทับเวลา
ตรวจสอบโค้ด
หากต้องการตรวจสอบโค้ด Apps Script สำหรับโซลูชันนี้ ให้คลิก ดูซอร์สโค้ดด้านล่าง
ดูซอร์สโค้ด
Code.gs
การปรับเปลี่ยน
คุณสามารถแก้ไขการทำงานอัตโนมัติของการผสานอีเมลได้ตามต้องการ ด้านล่างนี้เป็นการเปลี่ยนแปลงที่ไม่บังคับ 2-3 รายการที่คุณสามารถดำเนินการกับซอร์สโค้ดได้
เพิ่มพารามิเตอร์สำเนาลับ, สำเนาถึง, ตอบกลับไปที่ หรือจากอีเมล
โค้ดตัวอย่างจะมีพารามิเตอร์เพิ่มเติมจำนวนหนึ่ง โดยในปัจจุบัน แสดงความคิดเห็น ซึ่งช่วยให้คุณสามารถควบคุมชื่อบัญชีที่จะส่งอีเมลได้ จากตอบกลับที่อยู่อีเมล รวมทั้งสำเนาลับถึงและสำเนาถึงที่อยู่อีเมล
เปิดใช้งานพารามิเตอร์ที่ต้องการเพิ่มโดยนำเครื่องหมายทับออก
//
อยู่ด้านหน้าแต่ละรายการ
ตัวอย่างต่อไปนี้แสดงบางส่วนจาก sendEmails
ที่เปิดใช้งานพารามิเตอร์อีเมลส่วนใหญ่:
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, { htmlBody: msgObj.html, bcc: 'bcc@example.com', cc: 'cc@example.com', from: 'from.alias@example.com', name: 'name of the sender', replyTo: 'reply@example.com', // noReply: true, // if the email should be sent from a generic no-reply email address (not available to gmail.com users)
ในตัวอย่างข้างต้น พารามิเตอร์ noReply
ยังคงถูกแสดงความคิดเห็น
เนื่องจากมีการตั้งค่าพารามิเตอร์ replyTo
ใส่อักขระ Unicode ในอีเมล
หากต้องการใส่อักขระ Unicode เช่น อีโมจิ ไว้ในอีเมล ให้ทำดังนี้ ต้องอัปเดตรหัสเพื่อใช้บริการอีเมลแทนบริการ Gmail
ในโค้ดตัวอย่าง ให้อัปเดตบรรทัดต่อไปนี้
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
แทนที่บรรทัดด้วยรหัสต่อไปนี้
MailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
ผู้ร่วมให้ข้อมูล
ตัวอย่างนี้จัดทำโดย Martin Hawksey หัวหน้าฝ่ายออกแบบและเทคโนโลยีที่ Edinburgh Futures Institute, Blogger และ Google Developer Expert
- หามาร์ตินใน Twitter @mhawksey
- อ่านบล็อกโพสต์ที่เกี่ยวข้องกับ Google Apps Script ของ Martin
- ดูรายการ YouTube ของ Martin ชื่อ Totally Unscripted
ตัวอย่างนี้ดูแลโดย Google ด้วยความช่วยเหลือจากผู้เชี่ยวชาญของ Google Developer