Gửi thư tự động từ danh sách trên Google Sheets

  • 10 Đánh giá

Gửi email từ Google Sheets như thế nào? Hãy cùng Download.vn tìm hiểu cách gửi email từ Google Sheets đơn giản nhất nhé!

Google Sheets là một chương trình bảng tính tương tự như Excel và hoàn toàn miễn phí. Nếu là một nhân viên văn phòng, ắt hẳn bạn sẽ phải làm việc nhiều với Google Sheets, trong đó có gửi email. Giống như Excel, Google Sheets cũng có các công thức tính tự động giúp bạn, gửi email hàng loạt, thậm chí cả tự động gửi email. Nếu bạn cũng đang muốn gửi email từ Google Sheets tự động, thì chắc chắn cần tới Google Scripts.

Google Scripts là một công cụ hữu ích, hỗ trợ người dùng tự động hóa các những tác vụ trong ứng dụng của Google như Google Sheets, Google Docs… Và tính năng gửi email tự động sẽ tăng thêm “sức mạnh” cho các công cụ của Google.

Chỉ với vài thao tác đơn giản, một lần thiết lập duy nhất, bạn sẽ không còn phải tự gửi dữ liệu qua email nữa. Hãy “tuyển” Google Scripts làm 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 đơn giản hơn nhiều đấy.

1. Thiết lập Google Sheets để gửi email

Bước đầu tiên để thiết lập Google Sheets gửi mail tự động với Google Scripts là bạn phải 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 tập lệnh gửi mail tới.

Để bắt đầu, bạn tạo trang email đặc biệt của mình bằng cách thêm trang tính mới trong bảng tính hiện tại và đặt tên cho nó, chẳng hạn như là Send - Emails.

Đặt tên cho trang tính mới

Trong trang Send - Emails mới, bạn sẽ muốn tạo một tiêu đề. Mỗi hàng trong bảng tính này sẽ đại diện cho một email cá nhân mà sẽ được gửi mail tới.

Thông tin người nhận

Bạn có thể tạo một email ở bất cứ kích thước và cấu trúc nào bằng cách sử dụng cột để ghép những thông tin tĩnh và động.

Tạo một email với kích thước bất kỳ

Thông tin tĩnh chỉ là văn bản bạn vừa nhập vào trong ô. Điều này sẽ không thay đổi từ tháng này sang tháng khác. Nó chỉ là một phần của tin nhắn email mà luôn luôn như vậy, không có sự thay đổi. Tuy nhiên, đối với dữ liệu mà bạn muốn thay đổi mỗi tháng, bạn có thể thêm chức năng nhập dữ liệu liên quan từ những trang tính khác vào bảng tính của bạn.

Thông tin tĩnh

Mục đích ở đây là bất cứ khi nào bạn mở trang tính để xem thông báo được tự động hóa, bạn sẽ có một item menu mà bạn có thể click vào đó để khởi chạy Google Scripts gửi email và phân phối kết quả cho tất cả mọi người.

Sau khi đã hoàn thành việc tạo trang tính, nó sẽ nhìn giống như sau:

Trang tính khi hoàn thành

Như vậy, trang tính của bạn với tất cả email cá nhân đã sẵn sàng. Bây giờ, hãy chuyển sang bước viết tập lệnh.

2. Viết tập lệnh tự động gửi mail

Để viết tập lệnh, bạn cần sử dụng trình chỉnh sửa tập lệnh. Bạn sẽ tìm thấy nó trong mục Tools > Script editor.

Trình chỉnh sửa tập lệnh

Bạn sẽ cần tạo một chức năng mới ở đầu bảng phía bên phải.

Tạo một chức năng mới

Chỉ cần sao chép và dán tập lệnh bên dưới vào vùng viết tập 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 = 'Dear ' + recipient + ',
' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3;
    var subject = 'Your article count for this month';
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

Tập lệnh này có vẻ nhìn khá phức tạp, nhưng thực sự không phải vậy. Hãy chia nhỏ nó để bạn biết chính xác từng dòng có chức năng gì.

3. Chia nhỏ code

Để chức năng này hoạt động đúng, bạn cần đảm bảo rằng trang tính nơi chứa tất cả email được lưu trữ là một trang tính hoạt động. Nếu không, mọi thứ sau đó sẽ không hoạt động. Hai dòng dưới đây đảm bảo cho điều đó.

var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Send-Emails"));

Tiếp theo, chúng ta cần trích xuất mọi dữ liệu từ trang tính. Phương thức sheet.GetRange() sẽ trích xuất thông tin từ bất cứ phạm vi ô nào mà bạn cung cấp trong dấu ngoạc kép. Tiếp theo, phương thức dataRange.getValues() 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ờ, chúng ta đã 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 mà chứa một mảng một chiều của phần tử cột. Bạn có thể tham khảo mỗi cột sử dụng một 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à gộp tất cả các phân đoạn của tin nhắn để tạo ra phần thân của email. Bạn có thể cung cấp cho nội dung email một định dạng bằng cách sử dụng ký tự \ n , đó là một vận chuyển trở lại.

var message = 'Dear ' + recipient + ',
' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3;

Ký tự + là lệnh nối. Bạn đặt văn bản tĩnh thực bên trong các dấu nháy đơn. Vì vậy, thông điệp này được ghép lại với nhau bằng cách đặt từ "Dear" ở phía trước của biến người nhận (chú ý sau "Dear" có một dấu cách).

Tiếp theo, bạn thêm hai vận chuyển trở lại vào cuối. Sau đó, bạn thêm phân đoạn tin nhắn đầu tiên, khoảng trắng, đoạn tin nhắn thứ hai, khoảng trắng, biến sẽ được đưa 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ỉ đặt dòng chủ đề cho email (điều này 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 hàng loạt mã trong dấu ngoặc đơn. Đi đến phần cuối của mã và thêm những dòng sau đây:

var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
  {name: 'Send Emails', functionName: 'sendArticleCountEmails'}
];
spreadsheet.addMenu('Send Emails', menuItems);

Chỉ cần đảm bảo bạn nhập chính xác 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 tải một item menu vào trang tính mỗi lần trang tính được mở.

Chức năng mới

Bây giờ, bất cứ khi nào bạn mở bảng tính của mình hàng tháng để xem lại tất cả dữ liệu, bạn chỉ cần nhấp vào item menu để gửi email. Thao tác này sẽ chạy chức năng mới của bạn và gửi tất cả những email đó cho bạn. Một công việc mà có thể bạn sẽ phải bỏ ra hàng giờ để hoàn thành thì nay chỉ cần thực hiện với một lần click chuột.

  • 4.161 lượt xem
Cập nhật: 03/11/2020
0 Bình luận
Sắp xếp theo