ต้องส่งอีเมลหาลูกค้า 50 คน เนื้อหาเหมือนกัน แต่ชื่อกับยอดเงินไม่เหมือนกัน ถ้าคัดลอกแล้ววางทีละฉบับ ก็ใช้เวลาเป็นชั่วโมง และเสี่ยงส่งชื่อผิดคนด้วย
ปัญหาที่ตามมาคือ ทุกครั้งที่มีรายชื่อรอบใหม่ก็ต้องมานั่งทำซ้ำเหมือนเดิม และถ้าพลาดใส่ชื่อหรือยอดเงินผิดคน ก็เสียความน่าเชื่อถือกับลูกค้าทันที
บทความนี้ BookIntelligent จึงสอน วิธีส่งอีเมลอัตโนมัติด้วย Google Sheet ร่วมกับ Google Apps Script ที่ใส่ชื่อและข้อมูลของแต่ละคนให้เอง ทำตามได้ 5 ขั้นตอน ใช้ฟรี ไม่ต้องเขียนโค้ดเอง พร้อมแจกโค้ดพร้อมใช้ คัดลอกไปวางได้ทันที
เหมาะสำหรับคนทำงานออฟฟิศ ฝ่ายขาย ฝ่ายบัญชี แอดมิน และเจ้าของกิจการ SME ที่ต้องส่งอีเมลเนื้อหาเดียวกันหาหลายคนเป็นประจำ เช่น แจ้งยอดค้างชำระ แจ้งยอดขาย หรือยืนยันนัดหมาย
Table of Contents
ส่งอีเมลอัตโนมัติด้วย Google Sheet คืออะไร

วิธีนี้คือ Mail Merge คือการเอาข้อความต้นแบบ 1 ชุดมารวมกับรายชื่อในตาราง แล้วส่งออกเป็นอีเมลหลายฉบับ แต่ละฉบับมีข้อมูลเฉพาะของคนนั้น
เทียบง่าย ๆ เหมือน การพิมพ์ซองจดหมาย: เขียนจดหมายไว้ฉบับเดียว เว้นช่องชื่อไว้ แล้วให้เครื่องเติมชื่อแต่ละคนจากสมุดรายชื่อให้

ตัวที่ทำงานเบื้องหลังคือ Google Apps Script ซึ่งเป็นเครื่องมือฟรีที่ติดมากับ Google Sheet ไม่ต้องติดตั้งอะไรเพิ่ม และไม่ต้องจ่ายค่า Email Marketing รายเดือน
ภาพรวมทั้งหมดมีแค่ 5 ขั้นตอน
- ใส่รายชื่อและอีเมลลง Google Sheet
- เขียนข้อความอีเมล โดยใส่
{{ชื่อ}}ตรงที่อยากให้เปลี่ยนตามแต่ละคน - วางโค้ด Apps Script (คัดลอกจากบทความนี้ได้เลย)
- กดทดสอบส่งหาตัวเองก่อน 1 ฉบับ
- กด “ส่งอีเมลทั้งหมด” แล้วระบบจะบันทึกสถานะ “ส่งแล้ว” ให้ทุกแถว

งานแบบไหนเหมาะกับการส่งอีเมลอัตโนมัติ
| งาน | ตัวอย่างข้อมูลที่เปลี่ยนตามแต่ละคน |
|---|---|
| แจ้งเตือนยอดค้างชำระ / ใบแจ้งหนี้ | ชื่อลูกค้า, ยอดเงิน, วันครบกำหนด |
| แจ้งยอดขาย / KPI ให้ทีมขายรายคน | ชื่อเซลส์, ยอดขาย, % ถึงเป้า |
| ยืนยันนัดหมาย / ลงทะเบียนอบรม | ชื่อ, วันที่, เวลา, สถานที่ |
| ส่งลิงก์ดาวน์โหลดหรือรหัสให้ลูกค้า | ชื่อ, ลิงก์, รหัส |
| แจ้งผลสอบ / ผลประเมินพนักงาน | ชื่อ, คะแนน, ผลลัพธ์ |
ถ้างานของคุณต้อง แนบไฟล์ PDF แยกรายคน เช่น สลิปเงินเดือนหรือใบแจ้งหนี้ ใช้ Template Pro ส่ง Gmail แนบไฟล์อัตโนมัติ แทนได้เลยครับ
วิธีส่งอีเมลอัตโนมัติด้วย Google Sheet ทีละขั้นตอน
ขั้นตอนที่ 1 เตรียม Google Sheet (2 ชีท)
สร้าง Google Sheet ใหม่ แล้วตั้งชื่อชีทให้ ตรงตามนี้
ชีท “รายชื่อ”
แถวที่ 1 เป็นหัวคอลัมน์ ต้องมีคอลัมน์ อีเมล และ สถานะ ส่วนคอลัมน์อื่นจะเพิ่มอะไรก็ได้
| ชื่อ | อีเมล | ยอดค้างชำระ | วันครบกำหนด | สถานะ |
|---|---|---|---|---|
| สมชาย | somchai@example.com | 1,500 | 15/11/2026 | |
| มาลี | malee@example.com | 2,000 | 20/11/2026 |

ชีท “ข้อความ”
- A1 พิมพ์
หัวเรื่องและ B1 พิมพ์หัวเรื่องอีเมล - A2 พิมพ์
เนื้อหาและ B2 พิมพ์เนื้อหาอีเมล (กดCtrl + Enterเพื่อขึ้นบรรทัดใหม่ในเซลล์)
ใส่ {{ชื่อคอลัมน์}} ตรงที่อยากดึงข้อมูลของแต่ละคน ชื่อต้องตรงกับหัวคอลัมน์ทุกตัวอักษร
B1: แจ้งยอดค้างชำระ คุณ{{ชื่อ}}
B2: เรียน คุณ{{ชื่อ}}
ขอแจ้งยอดค้างชำระ {{ยอดค้างชำระ}} บาท
กรุณาชำระภายในวันที่ {{วันครบกำหนด}}
ขอบคุณครับ

ขั้นตอนที่ 2 วางโค้ด Apps Script
- ใน Google Sheet ไปที่เมนู ส่วนขยาย (Extensions) → Apps Script
- ลบโค้ดเดิมในไฟล์
Code.gsออกให้หมด - คัดลอกโค้ดด้านล่างไปวาง แล้วกด 💾 บันทึก
/**
* ส่งอีเมลอัตโนมัติจาก Google Sheets (Mail Merge) — by Bookintelligent
*
* ชีท "รายชื่อ" : แถวที่ 1 = หัวคอลัมน์ (ต้องมีคอลัมน์ "อีเมล" และ "สถานะ")
* ชีท "ข้อความ" : B1 = หัวเรื่องอีเมล, B2 = เนื้อหาอีเมล
* ใช้ {{ชื่อคอลัมน์}} เพื่อดึงข้อมูลแต่ละคน เช่น {{ชื่อ}} {{ยอดค้างชำระ}}
*/
const CONFIG = {
DATA_SHEET: 'รายชื่อ',
TEMPLATE_SHEET: 'ข้อความ',
EMAIL_COL: 'อีเมล',
STATUS_COL: 'สถานะ',
SENDER_NAME: 'Bookintelligent', // ชื่อผู้ส่งที่ผู้รับจะเห็น
};
/** สร้างเมนู "📧 ส่งอีเมล" ทุกครั้งที่เปิดไฟล์ */
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('📧 ส่งอีเมล')
.addItem('1) ทดสอบส่งหาตัวเอง', 'sendTestEmail')
.addItem('2) ส่งอีเมลทั้งหมด', 'sendEmails')
.addSeparator()
.addItem('เช็กโควตาคงเหลือวันนี้', 'showQuota')
.addToUi();
}
/** ส่งอีเมลให้ทุกแถวที่ยังไม่ได้ส่ง */
function sendEmails() {
const lock = LockService.getDocumentLock();
if (!lock.tryLock(5000)) {
SpreadsheetApp.getActive().toast('ระบบกำลังส่งอยู่ กรุณารอสักครู่', '📧 ส่งอีเมล');
return;
}
try {
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName(CONFIG.DATA_SHEET);
if (!sheet) throw new Error('ไม่พบชีท "' + CONFIG.DATA_SHEET + '"');
const tpl = getTemplate_();
const data = sheet.getDataRange().getDisplayValues();
const headers = data[0].map(function (h) { return String(h).trim(); });
const emailIdx = headers.indexOf(CONFIG.EMAIL_COL);
const statusIdx = headers.indexOf(CONFIG.STATUS_COL);
if (emailIdx === -1 || statusIdx === -1) {
throw new Error('แถวที่ 1 ต้องมีคอลัมน์ "' + CONFIG.EMAIL_COL + '" และ "' + CONFIG.STATUS_COL + '"');
}
let quota = MailApp.getRemainingDailyQuota();
let sent = 0, skipped = 0, failed = 0, waiting = 0;
for (let r = 1; r < data.length; r++) {
const row = data[r];
const email = String(row[emailIdx]).trim();
const status = String(row[statusIdx]);
if (!email || status.indexOf('ส่งแล้ว') === 0) { skipped++; continue; }
const statusCell = sheet.getRange(r + 1, statusIdx + 1);
if (!isValidEmail_(email)) { statusCell.setValue('❌ อีเมลไม่ถูกต้อง'); failed++; continue; }
if (quota < 1) { waiting++; continue; } // โควตาหมด รอส่งรอบถัดไป
try {
const values = toObject_(headers, row);
MailApp.sendEmail({
to: email,
subject: fill_(tpl.subject, values, false),
htmlBody: fill_(tpl.body, values, true).replace(/\n/g, '<br>'),
name: CONFIG.SENDER_NAME,
});
statusCell.setValue('ส่งแล้ว ' + Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), 'dd/MM/yyyy HH:mm'));
sent++;
quota--;
} catch (err) {
statusCell.setValue('❌ ' + err.message);
failed++;
}
}
SpreadsheetApp.flush();
let msg = 'ส่งสำเร็จ ' + sent + ' | ข้าม ' + skipped + ' | ผิดพลาด ' + failed;
if (waiting > 0) msg += ' | โควตาหมด รอส่งอีก ' + waiting + ' ฉบับ';
ss.toast(msg, '📧 ส่งอีเมลเสร็จแล้ว', 10);
} finally {
lock.releaseLock();
}
}
/** ส่งอีเมลแถวแรกที่ยังไม่ส่ง ไปหาตัวเองก่อน (ไม่เปลี่ยนสถานะ) */
function sendTestEmail() {
const ui = SpreadsheetApp.getUi();
const sheet = SpreadsheetApp.getActive().getSheetByName(CONFIG.DATA_SHEET);
const tpl = getTemplate_();
const data = sheet.getDataRange().getDisplayValues();
const headers = data[0].map(function (h) { return String(h).trim(); });
const emailIdx = headers.indexOf(CONFIG.EMAIL_COL);
const statusIdx = headers.indexOf(CONFIG.STATUS_COL);
const row = data.slice(1).find(function (rw) {
return String(rw[emailIdx]).trim() && String(rw[statusIdx]).indexOf('ส่งแล้ว') !== 0;
});
if (!row) { ui.alert('ไม่มีแถวที่รอส่ง'); return; }
const me = Session.getActiveUser().getEmail();
const values = toObject_(headers, row);
MailApp.sendEmail({
to: me,
subject: '[ทดสอบ] ' + fill_(tpl.subject, values, false),
htmlBody: fill_(tpl.body, values, true).replace(/\n/g, '<br>'),
name: CONFIG.SENDER_NAME,
});
ui.alert('ส่งอีเมลทดสอบไปที่ ' + me + ' แล้ว\n(ใช้ข้อมูลของ ' + row[emailIdx] + ')');
}
function showQuota() {
SpreadsheetApp.getUi().alert('วันนี้ส่งได้อีก ' + MailApp.getRemainingDailyQuota() + ' ฉบับ');
}
/* ---------- ฟังก์ชันช่วย ---------- */
function getTemplate_() {
const t = SpreadsheetApp.getActive().getSheetByName(CONFIG.TEMPLATE_SHEET);
if (!t) throw new Error('ไม่พบชีท "' + CONFIG.TEMPLATE_SHEET + '"');
const subject = String(t.getRange('B1').getValue()).trim();
const body = String(t.getRange('B2').getValue());
if (!subject || !body.trim()) throw new Error('กรุณาใส่หัวเรื่องที่ B1 และเนื้อหาที่ B2 ในชีท "' + CONFIG.TEMPLATE_SHEET + '"');
return { subject: subject, body: body };
}
function toObject_(headers, row) {
const obj = {};
headers.forEach(function (h, i) { obj[h] = row[i]; });
return obj;
}
/** แทน {{ชื่อคอลัมน์}} ด้วยข้อมูลจริง (ถ้าไม่พบคอลัมน์ จะคงข้อความเดิมไว้ให้เห็นว่าผิด) */
function fill_(text, values, escapeHtml) {
return text.replace(/\{\{\s*([^}]+?)\s*\}\}/g, function (match, key) {
if (!(key in values)) return match;
const v = String(values[key]);
return escapeHtml ? escape_(v) : v;
});
}
function escape_(s) {
return s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
function isValidEmail_(email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}
โค้ดนี้ทำอะไรให้บ้าง (ไม่ต้องแก้อะไร)
- ✅ ไม่ส่งซ้ำ: แถวที่สถานะขึ้นว่า “ส่งแล้ว” จะถูกข้ามอัตโนมัติ
- ✅ ตรวจอีเมลผิดรูปแบบ: แถวไหนอีเมลผิดจะขึ้น ❌ ให้เห็นเลย
- ✅ ดูโควตา: ถ้าโควตาวันนี้หมด จะหยุดส่งและบอกว่าเหลือรอส่งกี่ฉบับ
- ✅ กดซ้ำแล้วไม่ส่งเบิ้ล: มีระบบล็อกป้องกันการกดปุ่มส่งซ้อนกัน
- ✅ ตัวเลขและวันที่แสดงตามที่เห็นในชีท เช่น 1,500 หรือ 15/11/2026

ขั้นตอนที่ 3 อนุญาตสิทธิ์ (ทำครั้งแรกครั้งเดียว)
- กลับไปที่ Google Sheet แล้ว รีเฟรชหน้า (F5) จะเห็นเมนู 📧 ส่งอีเมล ขึ้นมา
- กด 📧 ส่งอีเมล → 1) ทดสอบส่งหาตัวเอง
- จะมีหน้าต่างขอสิทธิ์ ให้กด ดำเนินการต่อ (Continue) แล้วเลือกบัญชี Google ของคุณ
- ถ้าขึ้นหน้าเตือน “Google hasn’t verified this app” ให้กด Advanced → Go to … (unsafe) แล้วกด Allow
หน้าเตือนนี้ขึ้นเป็นปกติ เพราะเป็นสคริปต์ที่คุณสร้างเองในไฟล์ของตัวเอง ไม่ได้ผ่านการตรวจของ Google เหมือนแอปทั่วไป และสคริปต์จะส่งอีเมลจากบัญชีของคุณเท่านั้น

ขั้นตอนที่ 4 ทดสอบส่งหาตัวเอง
กด 1) ทดสอบส่งหาตัวเอง อีกครั้ง ระบบจะเอาข้อมูลแถวแรกที่ยังไม่ส่งมาสร้างอีเมล แล้วส่งเข้า Gmail ของคุณเอง หัวเรื่องจะขึ้นต้นด้วย [ทดสอบ]
เช็ก 3 อย่างนี้ก่อนส่งจริง
- ชื่อและตัวเลขขึ้นถูกต้อง ไม่มี
{{...}}ค้างอยู่ - การเว้นบรรทัดอ่านง่าย
- ชื่อผู้ส่งถูกต้อง (แก้ได้ที่
SENDER_NAMEในโค้ด)
ขั้นตอนที่ 5 กดส่งอีเมลทั้งหมด
กด 📧 ส่งอีเมล → 2) ส่งอีเมลทั้งหมด แล้วรอจนมุมขวาล่างขึ้นสรุปผล เช่น ส่งสำเร็จ 48 | ข้าม 2 | ผิดพลาด 0
คอลัมน์ สถานะ จะขึ้นว่า ส่งแล้ว 03/11/2026 14:05 ทุกแถว ถ้ามีรายชื่อใหม่ ให้เพิ่มแถวแล้วกดส่งอีกครั้ง ระบบจะส่งเฉพาะแถวที่ยังไม่ได้ส่ง

ตั้งเวลาให้ส่งอีเมลอัตโนมัติทุกวัน (เสริม)
ถ้ามีรายชื่อเพิ่มเข้ามาเรื่อย ๆ เช่น ลูกค้าที่กรอกฟอร์มเข้ามา ตั้งให้ระบบส่งเองได้
- ในหน้า Apps Script กดไอคอน ⏰ ทริกเกอร์ (Triggers) ทางซ้าย
- กด + เพิ่มทริกเกอร์
- เลือกฟังก์ชัน
sendEmails, แหล่งที่มาของเหตุการณ์ ตามเวลา (Time-driven), เลือก ตัวจับเวลารายวัน แล้วเลือกช่วงเวลาที่ต้องการ - กด บันทึก
ระบบจะส่งเฉพาะแถวที่ยังไม่ส่งทุกวัน และไม่ส่งซ้ำ
ข้อดีของการส่งอีเมลอัตโนมัติด้วย Google Sheet
ใช้ฟรีด้วยบัญชี Google ไม่มีค่าใช้จ่ายรายเดือน
ไม่ต้องสมัครโปรแกรม Email Marketing แบบรายเดือน ใช้แค่ Google Sheet และ Apps Script ที่มากับบัญชี Google อยู่แล้ว
ใส่ข้อมูลเฉพาะของแต่ละคนได้ไม่จำกัด
เพิ่มคอลัมน์ได้ตามต้องการ แล้วเรียกใช้ด้วย {{ชื่อคอลัมน์}} อีเมลแต่ละฉบับจึงมีชื่อ ยอดเงิน หรือวันที่ของคนนั้นโดยไม่ต้องพิมพ์เอง
ไม่ส่งซ้ำ และเห็นสถานะทุกแถว
ระบบบันทึกคำว่า “ส่งแล้ว” พร้อมวันเวลาไว้ในชีท ถ้ากดส่งรอบใหม่จะส่งเฉพาะแถวที่ยังไม่ได้ส่ง
ทำงานบนคลาวด์ ตั้งเวลาให้ส่งเองได้
ไม่ต้องเปิดคอมหรือติดตั้ง Outlook ตั้งทริกเกอร์ไว้ครั้งเดียว ระบบจะส่งให้เองตามเวลาที่กำหนด
ข้อควรระวังในการใช้งาน
เพื่อให้ส่งอีเมลได้ราบรื่นและไม่โดนจำกัดบัญชี ควรปฏิบัติดังนี้
- โควตาต่อวัน: Gmail ฟรีส่งผ่านสคริปต์ได้ประมาณ 100 ผู้รับ/วัน ส่วน Google Workspace ได้ประมาณ 1,500 ผู้รับ/วัน (เช็กได้จากเมนู “เช็กโควตาคงเหลือวันนี้”)
- ไม่ใช่เครื่องมือยิงโฆษณา: ถ้าส่งอีเมลขายของหาคนที่ไม่ได้ขอรับ อาจโดนกด Spam และบัญชีถูกจำกัดได้
- PDPA: อีเมลเชิงการตลาดต้องได้รับความยินยอมจากผู้รับ และควรมีช่องทางให้ขอยกเลิกรับ
- ไฟล์แนบ: โค้ดฟรีนี้ยังไม่รองรับการแนบไฟล์แยกรายคน ถ้าต้องการ ดู Template Pro ส่ง Gmail แนบไฟล์อัตโนมัติ
- ทดสอบส่งหาตัวเองก่อนทุกครั้งที่แก้ข้อความหรือเพิ่มคอลัมน์ใหม่
ปัญหาที่เจอบ่อยและวิธีแก้
| อาการ | สาเหตุ / วิธีแก้ |
|---|---|
| ไม่เห็นเมนู 📧 ส่งอีเมล | รีเฟรชหน้า Google Sheet 1 ครั้ง |
ขึ้น ไม่พบชีท "รายชื่อ" | ชื่อชีทต้องตรงตามนี้ทุกตัวอักษร และไม่มีช่องว่างเกิน |
ในอีเมลยังมี {{ชื่อ}} ค้างอยู่ | ชื่อใน {{ }} ไม่ตรงกับหัวคอลัมน์ ให้คัดลอกหัวคอลัมน์มาวางเลย |
สถานะขึ้น ❌ อีเมลไม่ถูกต้อง | มีช่องว่างหรือพิมพ์ผิด เช่น ขาด @ หรือ .com |
| ขึ้น “Service invoked too many times” | โควตาวันนี้หมด รอส่งพรุ่งนี้ หรือตั้งทริกเกอร์รายวันไว้ |
| อีเมลเข้า Spam | อย่าใส่ลิงก์เยอะ อย่าใช้คำขายแรง ๆ และส่งเฉพาะคนที่รู้จักคุณ |
คำถามที่พบบ่อย (FAQ)
ส่งอีเมลอัตโนมัติด้วย Google Sheet เสียเงินไหม?
ไม่เสียเงินครับ ใช้แค่บัญชี Google ฟรี ส่งได้ประมาณ 100 ผู้รับต่อวัน
ต้องเขียนโค้ดเป็นไหม?
ไม่ต้องครับ คัดลอกโค้ดจากบทความนี้ไปวางได้เลย ส่วนที่ต้องแก้มีแค่ชื่อผู้ส่ง
ส่งจาก Gmail บริษัทได้ไหม?
ได้ ถ้าบริษัทใช้ Google Workspace และผู้ดูแลระบบไม่ได้ปิดสิทธิ์ Apps Script ไว้ จะได้โควตาสูงขึ้นด้วย
ใส่ข้อมูลแต่ละคนได้กี่ช่อง?
ไม่จำกัดครับ เพิ่มคอลัมน์ได้ตามต้องการ แล้วเรียกใช้ด้วย {{ชื่อคอลัมน์}}
แนบไฟล์ PDF แยกแต่ละคนได้ไหม?
โค้ดฟรีในบทความนี้ยังไม่รองรับ ถ้าต้องการ ใช้ Template Pro ส่ง Gmail แนบไฟล์อัตโนมัติ ได้เลยครับ (แนบได้ 4 ไฟล์ต่อคน)
ต่างจาก Mail Merge ใน Word / Excel VBA ยังไง?
วิธีนี้ทำงานบนคลาวด์ ไม่ต้องเปิดคอมหรือติดตั้ง Outlook และตั้งเวลาให้ส่งเองได้ ส่วนถ้าทีมใช้ Excel และ Outlook อยู่แล้ว ดูบทความ ส่งอีเมลอัตโนมัติด้วย Excel VBA
ถ้าต้องการแนบไฟล์ หรือส่งเกิน 100 ฉบับแบบไม่ต้องคอยกด
โค้ดฟรีด้านบนเหมาะกับงานส่งข้อความ ถ้างานของคุณต้อง แนบสลิปเงินเดือน ใบแจ้งหนี้ หรือรายงาน PDF แยกรายคน ผมทำ ระบบส่ง Gmail แนบไฟล์อัตโนมัติด้วย Google Sheet (Template Pro) ไว้ให้แล้ว
| ความสามารถ | โค้ดฟรี (บทความนี้) | Template Pro |
|---|---|---|
| ส่งอีเมลหลายคน ใส่ชื่อแต่ละคน | ✅ | ✅ |
| บันทึกสถานะ / ไม่ส่งซ้ำ | ✅ | ✅ |
| แนบไฟล์จาก Google Drive (สูงสุด 4 ไฟล์ต่อคน) | ❌ | ✅ |
| ช่อง CC / ข้ามรายแถว (Skip) | ❌ | ✅ |
| Preview ก่อนส่งทุกฉบับ | ❌ | ✅ |
| Auto Loop: โควตาหมดแล้วรันต่อเองวันถัดไปจนส่งครบ | ❌ | ✅ |
| ดึงรายชื่อไฟล์แนบจากโฟลเดอร์ให้อัตโนมัติ | ❌ | ✅ |
| ราคา | ฟรี | 249 บาท ใช้ได้ตลอดชีพ |

ดูคลิปการใช้งาน [Template Pro] ระบบส่ง Gmail อัตโนมัติด้วย Google Sheets
อัตโนมัติด้วย Google Sheet
- ✅ แนบไฟล์ได้ 4 ไฟล์ต่อคน
- ✅ Auto Loop ส่งต่อเองจนครบ
- ✅ Preview ก่อนส่งทุกฉบับ
- ✅ ใส่ CC และข้ามบางแถวได้
สรุป
การส่งอีเมลอัตโนมัติด้วย Google Sheet ใช้แค่ ตารางรายชื่อ + ข้อความต้นแบบ + โค้ดชุดเดียว ก็เปลี่ยนงานที่เคยใช้เป็นชั่วโมงให้เหลือไม่กี่วินาทีได้ ทั้งฟรีและไม่ต้องเขียนโค้ดเอง
สิ่งสำคัญที่สุดคือทดสอบส่งหาตัวเองก่อนส่งจริงทุกครั้ง และส่งเฉพาะคนที่รู้จักหรือยินยอมรับอีเมลจากคุณ
หวังว่าวิธีส่งอีเมลอัตโนมัติด้วย Google Sheet นี้จะช่วยให้การส่งอีเมลหาลูกค้าหรือทีมงานของคุณเร็วขึ้นและผิดพลาดน้อยลง
ใครทดลองใช้งานแล้วติดปัญหา หรือต้องการให้เพิ่มฟังก์ชัน สามารถแสดงความคิดเห็นไว้ได้เลยครับ
ดูบทความเพิ่มเติมได้ดังนี้
- Template Free Google Sheet & Excel ดาวน์โหลดฟรี
- สอน Google Sheet พื้นฐานสู่มืออาชีพ (แจกเอกสารฟรี)
- QUERY Function 101 ดึงข้อมูลใน Google Sheets
- Web App To Do List + แจ้งเตือนผ่านอีเมลอัตโนมัติ
- ส่งอีเมลอัตโนมัติด้วย Excel VBA

ตอนนี้ ผมมีทำ [Template Pro] ระบบส่ง Gmail อัตโนมัติด้วย Google Sheet แนบไฟล์ได้ 4 ไฟล์ต่อคน (Auto Loop ส่งต่อเองจนครบ) สามารถดูรายละเอียดได้ที่ Link นี้

