หนึ่งในความสามารถที่มีประโยชน์ที่สุดของ 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 ทั่วไป) จำไว้: การส่งอีเมลอัตโนมัติช่วยประหยัดเวลามหาศาล ลองทำระบบแจ้งเตือนอีเมลจากฟอร์มดูเป็นโปรเจกต์แรก 📧