- shares
- 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:
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 đủ' });
Đí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 Messenger
- Gmail
- Viber
- Skype