หนึ่งในความสามารถที่มีประโยชน์ที่สุดของ Google Apps Script คือการส่งอีเมลอัตโนมัติ เช่น แจ้งเตือนเมื่อมีคนกรอกฟอร์ม ส่งใบเสร็จ หรือส่งรายงานประจำวัน บทความนี้จะสอนทีละขั้นสำหรับผู้เริ่มต้น ═══════════════════════════════════════ 📌 1. ส่งอีเมลด้วย GAS ทำได้อย่างไร ═══════════════════════════════════════ GAS มีบริการส่งอีเมลในตัว 2 ตัว: • MailApp → ส่งอีเมลง่าย ๆ (แนะนำสำหรับเริ่มต้น) • GmailApp → ส่งได้ละเอียดกว่า (ผ่านบัญชี Gmail ของคุณ) ทั้งคู่ใช้บัญชี Google ของคุณส่ง ไม่ต้องตั้งค่า SMTP ใด ๆ ═══════════════════════════════════════ ✉️ 2. ส่งอีเมลพื้นฐาน (MailApp) ═══════════════════════════════════════ ```javascript function sendSimpleEmail() { MailApp.sendEmail( "ผู้รับ@example.com", // ถึงใคร "หัวข้ออีเมล", // subject "เนื้อหาข้อความ" // body ); } ``` กด Save แล้ว Run ครั้งแรกจะขออนุญาตสิทธิ์ส่งเมล ให้กดอนุญาต จากนั้นเช็คกล่องอีเมลของผู้รับได้เลย ═══════════════════════════════════════ 🎨 3. ส่งอีเมลแบบ HTML (สวยกว่า) ═══════════════════════════════════════ ใช้ตัวเลือก htmlBody เพื่อจัดรูปแบบด้วย HTML ```javascript function sendHtmlEmail() { MailApp.sendEmail({ to: "ผู้รับ@example.com", subject: "ยินดีต้อนรับ", htmlBody: "<h1 style='color:#4285F4'>สวัสดีครับ</h1>" + "<p>ขอบคุณที่ลงทะเบียน</p>" + "<a href='https://example.com'>คลิกที่นี่</a>" }); } ``` ═══════════════════════════════════════ 🔔 4. ส่งอีเมลอัตโนมัติเมื่อมีข้อมูลใหม่ ═══════════════════════════════════════ ตัวอย่าง: เมื่อมีคนกรอกฟอร์ม ให้ส่งอีเมลแจ้งแอดมิน ```javascript function addDataAndNotify(name, message) { var sheetId = "วาง_ID_ของ_Sheet"; var sheet = SpreadsheetApp.openById(sheetId).getSheetByName("ชีต1"); // 1) บันทึกลง Sheet sheet.appendRow([new Date(), name, message]); // 2) ส่งอีเมลแจ้งเตือนแอดมิน MailApp.sendEmail( "admin@example.com", "มีข้อความใหม่จาก " + name, "ข้อความ: " + message ); } ``` ═══════════════════════════════════════ 👥 5. ส่งอีเมลหลายคนจากรายชื่อใน Sheet ═══════════════════════════════════════ อ่านรายชื่อจาก Sheet แล้ววนส่งทีละคน ```javascript function sendBulkEmail() { var sheetId = "วาง_ID_ของ_Sheet"; var sheet = SpreadsheetApp.openById(sheetId).getSheetByName("ชีต1"); var data = sheet.getDataRange().getValues(); // เริ่ม i = 1 เพื่อข้ามแถวหัวตาราง for (var i = 1; i < data.length; i++) { var name = data[i][0]; // คอลัมน์ A = ชื่อ var email = data[i][1]; // คอลัมน์ B = อีเมล MailApp.sendEmail(email, "ข่าวสาร", "สวัสดีคุณ " + name); } } ``` ═══════════════════════════════════════ 📎 6. แนบไฟล์ไปกับอีเมล ═══════════════════════════════════════ ```javascript function sendWithAttachment() { var fileId = "ID_ของไฟล์ใน_Drive"; var file = DriveApp.getFileById(fileId); MailApp.sendEmail({ to: "ผู้รับ@example.com", subject: "เอกสารแนบ", body: "กรุณาดูไฟล์แนบ", attachments: [file.getAs(MimeType.PDF)] }); } ``` ═══════════════════════════════════════ ⚠️ 7. ข้อจำกัดโควต้า (ต้องรู้) ═══════════════════════════════════════ Google จำกัดจำนวนอีเมลต่อวัน: • บัญชี Gmail ทั่วไป → ~100 ฉบับ/วัน • บัญชี Google Workspace → ~1,500 ฉบับ/วัน ตรวจโควต้าที่เหลือได้: ```javascript function checkQuota() { Logger.log("อีเมลที่ส่งได้อีก: " + MailApp.getRemainingDailyQuota()); } ``` ═══════════════════════════════════════ ✅ 8. สรุป ═══════════════════════════════════════ • MailApp.sendEmail(ถึง, หัวข้อ, เนื้อหา) = ส่งอีเมลพื้นฐาน • ใช้ htmlBody เพื่ออีเมลสวย ๆ • ผสมกับ Sheet เพื่อส่งอัตโนมัติเมื่อมีข้อมูล หรือส่งหลายคน • ระวังโควต้ารายวัน (~100 ฉบับสำหรับ Gmail ทั่วไป) จำไว้: การส่งอีเมลอัตโนมัติช่วยประหยัดเวลามหาศาล ลองทำระบบแจ้งเตือนอีเมลจากฟอร์มดูเป็นโปรเจกต์แรก 📧