Tải tất cả các file đính kèm email của 1 địa chỉ mail cụ thể. (2 người xem)

Người dùng đang xem chủ đề này

Maika8008

Thành viên gạo cội
Tham gia
12/6/20
Bài viết
4,904
Được thích
5,903
Donate (Momo)
Donate
Giới tính
Nam
Để tìm ra và tải hết tất cả các file đính kèm hoặc hình ảnh của một người bạn nào đó gửi cho mình qua email thì rất mất thời gian. Đoạn code sau đây sẽ giúp bạn làm điều đó nhanh chóng, lưu về 1 thư mục chỉ định trước trên tài khoản Google Drive của bạn

JavaScript:
function saveAttachmentsFromEmail() {
  // Thư mục đích (ID lấy từ URL của thư mục trên Google Drive)
  var folderId = "IDThuMucCanLuu";
  var folder = DriveApp.getFolderById(folderId);
 
  // Tìm email theo tiêu chí (ví dụ: theo subject hoặc từ người gửi)

  // Bạn có thể thay đổi chuỗi tìm kiếm theo nhu cầu
  //var threads = GmailApp.search('subject:"Hình lấy lại"');

  // Tìm tất cả email từ người gửi này có file đính kèm
  var emailX = "[B]emailcantim@gmail.com[/B]";
  var threads = GmailApp.search('from:' + emailX + ' has:attachment after:2026/03/25');
 
  if (threads.length === 0) {
    Logger.log("Không tìm thấy email nào từ người gửi này có file đính kèm");
    return;
  }
 
  // Duyệt qua từng thread
  for (var t = 0; t < threads.length; t++) {
    var messages = threads[t].getMessages();
  
    for (var m = 0; m < messages.length; m++) {
      var attachments = messages[m].getAttachments();
    
      for (var a = 0; a < attachments.length; a++) {
        var file = folder.createFile(attachments[a]);
        var fileUrl = "https://drive.google.com/file/d/" + file.getId() + "/view";
        Logger.log("Đã lưu: " + file.getName() + " → " + fileUrl);
      }
    }
  }
 
  Logger.log("Hoàn tất lưu tất cả file đính kèm từ " + emailX);
}

ID thư mục cần lưu lấy trên URL của thư mục. Ví dụ https://drive.google.com/drive/u/0/folders/0uYkFIUTVoTUhtMG1OTXJtSHU0dS1keVRuZG5MeVNlS3NDbXFCQzQ?resourcekey=0-IdYptC3s9lso3K6reK thì bạn chép chỗ chữ đậm.
 
Lần chỉnh sửa cuối:
Nhìn tiêu đề là đúng cái tôi đang cần luôn đó. Cứ mỗi cuối tháng là phải mở 30 cái email để tải 30 cái file đính kèm về. Mới vừa rồi thì phải tải email của 3 tháng, nhiều quá dễ sai sót khi làm thủ công. Để tôi thư xem dùng như thế nào rồi hỏi bạn tiếp.
 
Nhìn tiêu đề là đúng cái tôi đang cần luôn đó. Cứ mỗi cuối tháng là phải mở 30 cái email để tải 30 cái file đính kèm về. Mới vừa rồi thì phải tải email của 3 tháng, nhiều quá dễ sai sót khi làm thủ công. Để tôi thư xem dùng như thế nào rồi hỏi bạn tiếp.
Tải nhiều email cùng lúc và trong một khoảng thời gian cụ thể thì phải chỉnh sửa lại code kha khá
 
Lần chỉnh sửa cuối:
Tải bằng VBA Outlook trực tiếp về máy tính không ổn hơn hả bác. Outlook có thể đăng nhập Gmail tải bình thường.

1775459718838.png
 
Không hiểu ý bác lắm, VBA Outlook muốn chạy tải thế nào mà không được.
 
Tải bằng VBA Outlook trực tiếp về máy tính không ổn hơn hả bác. Outlook có thể đăng nhập Gmail tải bình thường.
Tại tôi cũng không muốn tải toàn bộ email về máy tính nên chỉ xem trực tiếp trên Gmail, không muốn cài Outlook. Cái nào cần thì lưu file đính kèm. Với lại tôi xài máy Mac nên Office cũng bị hạn chế code VBA (không API, không thư viện Windows). Nếu muốn xài ứng dụng với đầy đủ code VBA thì phải vào máy ảo Windows --> hơi mất công khi chỉ check email. Nếu có giải pháp nào thuận tiện hơn thì dùng đó em.
 
Google Sheets có nhiều Add-ons quản lý Mail rất tốt, trừ khi muốn viết lại mã nguồn cá nhân hóa, hoặc cho riêng một vài chức năng chuyên biệt.
 
Nhìn tiêu đề là đúng cái tôi đang cần luôn đó. Cứ mỗi cuối tháng là phải mở 30 cái email để tải 30 cái file đính kèm về. Mới vừa rồi thì phải tải email của 3 tháng, nhiều quá dễ sai sót khi làm thủ công. Để tôi thư xem dùng như thế nào rồi hỏi bạn tiếp.
Muốn giới hạn ngày nhận email thì thêm, ví dụ: after:2026/03/25 sau has:attachment
 

Bài viết mới nhất

Back
Top Bottom