Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Công cụ » Đọc và Gửi email trong Google Script

Đọc và Gửi email trong Google Script

Chủ Nhật, 16/11/2014 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Gửi email

Sử dụng đối tượng package MailApp giúp bạn làm việc với các hàm sử lý mail như gửi mail, đọc mail trong inbox…
Để gửi email đi bạn gọi hàm sendEmail, cú pháp:

MailApp.sendEmail(recipient, subject, body, options);

Chép đoạn code ví dụ dưới đây vào trình soạn thảo google script.

MailApp.sendEmail('[email protected]', 'mô tả 1', 'mô tả 2',

Khi chạy lệnh này, google sẽ xác nhận quyền truy cập quản lý vào ứng dụng GMail bạn cần xác nhận tài khoản trước khi thực hiện lệnh gửi mail.
Trong đó: ‘mô tả 1’ là chủ đề, hiển thị có bôi đậm và ‘mô tả 2’ là nội dung mô tả có mầu nhạt hơn. Trong email nhận được giống thế này:
gửi gmail

Tùy chọn nâng cao
Hiển thị tên tiêu đề mail đầy đủ khi click xem email chi tiết, lưu ý khác với tên mô tả ‘subject’ trong danh sách inbox đấy nhé. VD:

 MailApp.sendEmail("[email protected]","Tiêu đề mô tả ngắn","mo ta nội dung mail",{
    name:'tiêu đề mail đầy đủ'
  });

incoming-gmail

Đính kèm attachments
Bạn có thể kết hợp với kho ứng dụng tài liệu Google Drive như docs, spreadsheet để đính kèm trong email, truy cập vào các file google doc hay bảng tính spreadsheet thông qua chỉ số ID của file, ngày nay các ứng dụng google đã được đồng bộ có thể sử dụng cho nhau rất linh hoạt. Bạn sẽ cảm thấy rất tiện nghi:
Sử dụng thuộc tính option ‘attachments’, cho phép bạn đính kèm một hay nhiều file vào email gửi đi.
Ví dụ:

// Send an email with two attachments: a file from Google Drive (as a PDF) and an HTML file.
 var file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');	//ie: lấy từ doc
 var blob = Utilities.newBlob('Insert any HTML content here', 'text/html', 'my_document.html');
 MailApp.sendEmail('[email protected]', 'tiêu đề ngắn', 'nội dung mail', {
     name: 'tiêu đề mail đầy đủ',
     attachments: [file.getAs(MimeType.PDF), blob]	//các files đính kèm
 });

Đọc danh sách mails trong inbox

Lấy các threads trong nhãn. Mỗi thread là một conversation giao dịch gồm 2 mail (gửi và trả lời), khi người nhận trả lời mail bằng cách nhấn vào nút reply lúc đó 2 người đang xây dựng các tin nhắn cho thread đó.
Ví dụ này lấy tất cả các threads có trong nhãn ‘label-1’.

//get label object by name
var label =GmailApp.getUserLabelByName("label-1);

//lấy threads trong label này
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
    if (threads[i].getLastMessageDate()<maxDate)
      {
        threads[i].moveToTrash();
      }
  }

label.getThreads() trả về mảng chứa các threads bạn có thể dùng vòng lặp for để đọc từng thread.
Các cách lấy threads
– Nơi chứa threads xác định bởi nhãn, thư trong mục inbox có nhãn “inbox” hay các threads nằm trong thư mục “Spam”..

GmailApp.getUserLabelByName("inbox);

Trong một số nơi thường hay truy cập, gmail script có sẵn hàm tiện ích giúp bạn truy cập vào thư mục nếu không biết tên nhãn. Ví dụ cách khác để lấy threads trong inbox.

var threads=GmailApp.getInboxThreads(0,50); //giới hạn threads từ 50 đổ xuống

Lưu ý: bạn nên giới hạn các threads trả về, không nên lấy tất cả các threads nó sẽ rất chậm nếu như có đến 1800 messages.

– Lấy thread chỉ định bởi id:

//get thread by id
var thread = GmailApp.getThreadById(threadId);

– Đếm tất cả các threads chưa đọc trong nhãn.

var label=GmailApp.getUserLabelByName("Vaycanhan");
// get count of all threads in the given label
 var threadCount = label.getUnreadCount();

Thao tác với threads
– Thiết lập trạng thái chưa đọc cho các messsages của thread.

for (var i = 0; i < threads.length; i++) {
	threads[i].markImportant();
}

– Move nhiều threads vào thùng rác (trash).

//move nhiều thread to trash
GmailApp.moveThreadsToTrash(threads.slice(0,4));	//truyền mảng các thread

Một số thông tin của thread.

for (var i = 0; i < threads.length; i++) {	//foreach
	//thông tin mail
    threads[i].getLastMessageDate()	;	//get last message date
    
	//đối tượng message của mail
    threads[i].getMessages();
		threads[i].getMessages()[0];	//vào đối tượng core message
		threads[i].getMessages()[0].getSubject();
		//body
		threads[i].getMessages()[0].getBody();
		threads[i].getMessages()[0].getPlainBody();
		
		threads[i].getMessages()[0].getFrom();	//"VayCaNhan.com" <[email protected]>
		//mail address
		threads[i].getMessages()[0].getTo();	//chinh là address mail của người nhận là me
		
		threads[i].getMessages()[0].getDate();	/Gets the date and time of this message.
		...
		
}

Mỗi một nội dung mail threads[i].getMessages()[0] là một đối tượng GmailMessage, Bạn có thể forward lại đến email gửi từ đối tượng đối tượng tin nhắn này để gửi nội dung đó cho người khác.

//forward to new recipients
threads[i].getMessages()[0].forward("[email protected],[email protected]");

Hoặc phản lồi lại cho email gửi từ đối tượng tin nhắn để thảo luận thêm về nội dung đó.

//reply
mail.reply('Got your message');	//reply lại sender
mail.replyAll("Got your message");	//Replies to the sender using the reply-to address and all recipients of this message

Các hàm kiểm tra trạng thái và thông tin của message đơn.

var mail=threads[i].getMessages()[0];
//checker
mail.isUnread();	//mail này chưa đọc?
mail.isInSpam();	//mail này trong mục spam?
mail.isInTrash();	//mail này đã bị xoá?
mail.isImportant();	//mail được đánh dấu sao (important)
mail.isInInbox();	//mail này trong inbox

Di chuyển message, xóa chúng bằng cách đưa vào trash hoặc lưu vào Archive.

//action
mail.moveToTrash();	//move to trash
mail.moveToArchive();	//move to archive

Đánh dấu message.

//mark, star
mail.markRead();	//đánh dấu đã đọc
mail.markUnread();	//đánh dấu chưa đọc
mail.star();	//star message
mail.unstar();	//un star message

Tìm kiếm mails

Lấy cú pháp tìm kiếm quy định trong gmail tại hộp search của ứng dụng gmail. Mỗi cú pháp tìm kiếm cách nhau bởi dấu cách. Một số cú pháp bạn có thể tìm lọc emails:
label:inbox: tìm trong inbox có nhãn ‘inbox’.
is: read|unread: trả về những emails đã đọc và cả chưa xem.
older_than:2d: lọc emails cách đây 2 ngày.
-label:"delete me": sử dụng ký tự – để phủ định. VD: không phải nhãn “delete me”.

Tìm kiếm emails với hàm GmailApp.search.

GmailApp.search(query,start,max);

Ví dụ sau tôi lấy tất cả các thread thỏa mãn điều kiện:

var threads = GmailApp.search('label:inbox is:read older_than:2d -label:"delete me"');

Chúc bạn thành công!

Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Công cụ Tìm kiếm: gmail, Google Apps Script, Google Scripts

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.