Tải tất cả các file đính kèm email của 1 địa chỉ mail cụ thể. (5 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,902
    Đượ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');
     
      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.
     

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

    Back
    Top Bottom