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

Gửi email từ Google Sheets hoàn toàn tự động không quá khó. Ở bài viết này, hãy cùng Download.vn tìm hiểu cách gửi mail tự động từ danh sách trên Google Sheets như thế nào nhé!

Nhắc tới phần mềm bảng tính, ắt hẳn nhiều người nghĩ ngay tới Microsoft Excel. Tuy nhiên, thực tế, hiện tại chúng ta đã có một lựa chọn thay thế, chất lượng không kém. Đó là Google Sheets.

Đúng, đây 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í sử dụng. Ứng dụng bảng tính này chạy trên trình duyệt web nên bạn không cần phải cài đặt, thậm chí còn có tính năng tự động lưu nên người dùng không lo mất dữ liệu.

Như đã nói từ đầu, Googe Sheets có hầu hết mọi chức năng ở Excel, bao gồm cả gửi email tự động bằng Google Scripts. Đây là tính năng cực kỳ hữu ích với dân văn phòng. Nó giúp người dùng tự động hóa các tác vụ không chỉ ở Google Sheets mà còn trên Google Docs, Google Slides. Tính năng này chính là một trong số đ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, 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.

  • 7.899 lượt xem
👨 Vy Vy Cập nhật: 29/10/2021
Xem thêm: Google Sheets Google Docs
1 Bình luận
Sắp xếp theo
👨
  • Kt Minh Phúc
    Kt Minh Phúc

    minh test run khong duoc bao loi Syntax error: SyntaxError: Unexpected number line: 12 file: Code.gs

    Thích Phản hồi 22/09/22
    • Vy Vy
      Vy Vy

      Đây là lỗi cú pháp. Bạn thử kiểm tra lại dòng số 12 xem chính xác chưa nhé!

      Thích Phản hồi 24/09/22
Chỉ thành viên Download Pro tải được nội dung này! Download Pro - Tải nhanh, website không quảng cáo! Tìm hiểu thêm