You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需求:修改代码仅将邮件中XML附件上传至Google Drive

仅上传XML附件到Google Drive的代码修改

只需在遍历附件的逻辑中添加过滤条件,只处理XML格式的附件即可,以下是修改后的完整代码:

var label = GmailApp.getUserLabelByName('NFs'); // <-- RENAME TO YOUR CUSTOM FILTER LABEL
var moveToLabel = GmailApp.getUserLabelByName('NFs Import'); // <-- Uncomment to move to new label after download
var ss = SpreadsheetApp.openById('19vKRsoFwVyXOxvWkE'); //  <-- INSERT GSHEET_ID
var sh = ss.getSheetByName("Email");  //  <-- Enter Sheet-Name where records should be created
var destinationFolderID = '1noxxKIgg4N3G0Ob'; // <-- Enter the ID of the folder to copy files to
var threads = label.getThreads();
threads.forEach(thread => {
  var messages = thread.getMessages();
  messages.forEach(message => {
    var sent = message.getDate();
    var sender = message.getFrom();
    var subject = message.getSubject();
    var attachments = message.getAttachments({
      includeInlineImages: false,
      includeInlineAttachments: false
    });
    var attachmentNames = [];
    attachments.forEach(attachment => {
      // 仅处理XML格式的附件,兼容大小写后缀(如.XML或.xml)
      if (attachment.getName().toLowerCase().endsWith('.xml')) {
        Drive.Files.insert(
          { title: attachment.getName(), mimeType: attachment.getContentType(), parents: [{ id: destinationFolderID }] },
          attachment.copyBlob()
        );
        attachmentNames.push([attachment.getName()]);
      }
    });
    // 补充:将XML附件记录写入表格(若原代码有此需求)
    if (attachmentNames.length > 0) {
      sh.appendRow([sent, sender, subject, JSON.stringify(attachmentNames)]);
    }
  });
  // 可选:处理完成后移动邮件到指定标签
  // thread.addLabel(moveToLabel);
  // thread.removeLabel(label);
});

关键修改点

  • 增加了文件名后缀判断逻辑attachment.getName().toLowerCase().endsWith('.xml'),确保只筛选出XML格式的附件
  • 仅当附件符合XML格式时,才执行上传到Google Drive和记录文件名的操作

内容的提问来源于stack exchange,提问作者Julio Sielski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:03:26