Gửi email từ Google Sheets hoàn toàn tự động không hề phức tạp. Trong bài viết này, hãy cùng Mytour khám phá cách tự động gửi email từ danh sách trên Google Sheets như thế nào nhé!
Khi nhắc đến phần mềm bảng tính, nhiều người nghĩ ngay tới Microsoft Excel. Nhưng thực tế, chúng ta đã có một lựa chọn thay thế, chất lượng không kém. Đó chính là Google Sheets.
Đúng, đó là một sản phẩm của Google. Nó có chức năng tương tự như Excel và hoàn toàn miễn phí. Ứng dụng bảng tính này chạy trên trình duyệt web, không cần cài đặt, thậm chí còn có tính năng tự động lưu dữ liệu.
Như đã đề cập từ đầu, Googe Sheets có gần như mọi chức năng của Excel, bao gồm cả gửi email tự động qua Google Scripts. Điều này thực sự hữu ích với người làm văn phòng, giúp tự động hóa các tác vụ trên Google Sheets, Google Docs, và Google Slides. Tính năng này chính là một trong những điểm hấp dẫn, thu hút người dùng của Google Sheets.
Chỉ với vài thao tác đơn giản, chỉ cần thiết lập một lần duy nhất, bạn sẽ không cần phải tự gửi dữ liệu qua email nữa. Hãy cho Google Scripts trở thành trợ lý cá nhân của bạn. Bạn sẽ thấy công việc xử lý email hàng ngày trở nên đơn giản hơn nhiều.
1. Thiết lập Google Sheets để gửi email
Để bắt đầu, bạn tạo trang email đặc biệt của mình bằng cách thêm một trang tính mới vào bảng tính hiện tại và đặt tên cho nó, ví dụ như là Gửi - Emails.
Bước đầu tiên để thiết lập Google Sheets gửi mail tự động với Google Scripts là cần có một trang tính với đầy đủ tên, địa chỉ email và tin nhắn cho tất cả những người bạn muốn gửi email tới.
Trong trang Gửi - Emails mới, bạn cần tạo một tiêu đề. Mỗi dòng trong bảng tính này sẽ tượng trưng cho một email riêng biệt sẽ được gửi đi.
Bạn có thể tạo email với bất kỳ kích thước và cấu trúc nào bằng cách sử dụng các cột để kết hợp thông tin tĩnh và động.
Thông tin tĩnh là văn bản bạn nhập vào ô. Nó không thay đổi từ tháng này qua tháng khác, chỉ là một phần cố định của email. Nhưng đối với dữ liệu muốn thay đổi mỗi tháng, bạn có thể thêm chức năng nhập dữ liệu từ các bảng tính khác vào bảng tính của mình.
Mục tiêu ở đây là mỗi khi bạn mở trang tính để xem thông báo tự động hóa, bạn sẽ thấy một mục menu bạn có thể nhấp vào để khởi chạy Google Scripts gửi email và chia sẻ kết quả với mọi người.
Sau khi hoàn thành việc tạo trang tính, nó sẽ trông như sau:
Do đó, trang tính của bạn với tất cả địa chỉ email cá nhân đã được hoàn tất. Bây giờ, hãy tiếp tục sang bước viết mã lệnh.
2. Tạo mã lệnh gửi email tự động
Để viết mã lệnh, bạn cần mở trình chỉnh sửa mã lệnh. Điều này có thể được thực hiện bằng cách đi đến Công cụ > Trình soạn thảo mã.
Bạn cần tạo một hàm mới ở đầu trang bên phải của trình soạn thảo mã lệnh.
Đơn giản chỉ cần copy và paste đoạn mã dưới đây vào ô viết mã lệnh:
function sendArticleCountEmails() { var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName('Send-Emails')); var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange('A2:F4'); var data = dataRange.getValues(); for (i in data) { var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1= rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5]; var message = 'Chào bạn ' + recipient + ', ' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3; var subject = 'Số lượng bài viết của bạn trong tháng này'; MailApp.sendEmail(emailAddress, subject, message); } }
Mặc dù đoạn mã này có vẻ phức tạp, nhưng thực tế không phải như vậy. Hãy chia nhỏ nó để bạn hiểu rõ từng dòng làm gì.
3. Phân tích đoạn mã
Để chức năng này hoạt động đúng, đảm bảo rằng trang tính chứa tất cả địa chỉ email đang hoạt động. Nếu không, các bước tiếp theo sẽ không thể thực hiện được. Hai dòng mã dưới đây sẽ đảm bảo điều đó.
var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName('Send-Emails'));
Sau đó, chúng ta cần trích xuất tất cả dữ liệu từ trang tính. Phương thức sheet.GetRange() sẽ trích xuất thông tin từ bất kỳ phạm vi ô nào bạn cung cấp trong dấu ngoặc kép. Tiếp theo, phương thức dataRange.getValues() sẽ trích xuất dữ liệu và lưu trữ chúng thành một mảng hai chiều được gọi là dữ liệu.
var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange('A2:F4'); var data = dataRange.getValues();
Bây giờ, sau khi đã có tất cả dữ liệu được lưu trữ trong một mảng, chúng ta cần lặp lại mảng bằng cách sử dụng vòng lặp for. Mỗi phần tử của mảng là một hàng chứa một mảng một chiều của các phần tử cột. Bạn có thể truy cập mỗi cột bằng cách sử dụng một số chỉ số.
var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5];
Bước tiếp theo trong chức năng này là hợp nhất tất cả các phần của thông điệp để tạo ra phần thân của email. Bạn có thể định dạng nội dung email bằng cách sử dụng ký tự \ n, đó là một dấu xuống dòng.
var message = 'Chào ' + người nhận + ', ' + message1 + ' ' + message2 + ' ' + tham số2 + ' ' + message3;
Ký tự + là lệnh nối. Bạn đặt văn bản tĩnh bên trong các dấu nháy đơn. Vì vậy, thông điệp này được kết hợp lại với nhau bằng cách đặt từ 'Chào' phía trước biến người nhận (lưu ý sau 'Chào' có một dấu cách).
Tiếp theo, bạn thêm hai dấu xuống dòng vào cuối. Sau đó, bạn thêm phần của thông điệp đầu tiên, một khoảng trắng, phần của thông điệp thứ hai, một khoảng trắng, biến sẽ được thêm vào thư mỗi tháng và cuối cùng là phần cuối cùng của thư.
Bạn có thể có nhiều phần của thông điệp theo ý muốn, bạn chỉ cần sử dụng nhiều cột hơn để tạo ra toàn bộ thông điệp theo từng phần.
Hai dòng cuối cùng của mã chỉ định chủ đề cho email (cũng có thể bao gồm dữ liệu từ bảng tính nếu bạn muốn), và cuối cùng là phương thức sendEmail ().
4. Kích hoạt tập lệnh
Trở lại cửa sổ trình chỉnh sửa tập lệnh, bạn tìm kiếm chức năng onOpen. Nếu chức năng đã có ở đó, bạn sẽ nhìn thấy một chuỗi mã trong dấu ngoặc đơn. Đi đến phần cuối cùng của mã và thêm những dòng sau đây:
var bảng tính = SpreadsheetApp.getActive(); var menuItems = [ {tên: 'Gửi Email', functionName: 'sendArticleCountEmails'} ]; spreadsheet.addMenu('Gửi Email', menuItems);
Chỉ cần đảm bảo bạn nhập đúng tên chức năng của bạn trong các dấu nháy đơn cho tham số functionName. Điều này cho phép thêm một item menu vào trang tính mỗi khi trang tính được mở.
Bây giờ, mỗi khi bạn mở bảng tính hàng tháng để xem dữ liệu, chỉ cần nhấp vào item menu để gửi email. Hành động này sẽ chạy tính năng mới của bạn và gửi tất cả email đó cho bạn. Một công việc mà trước đây có thể mất hàng giờ để hoàn thành, giờ đây chỉ cần một lần click chuột.