【问题标题】:Google script that already fetches email infos but needs attachment name已获取电子邮件信息但需要附件名称的 Google 脚本
【发布时间】:2020-08-28 16:51:22
【问题描述】:

上下文

  • 我正在使用脚本来获取我在此处找到的电子邮件(我认为来自Niclas):fetching emails script

  • 我已经根据自己的需要对其进行了调整,效果很好!

我测试过的内容

  • 我从 Google 脚本类附件中看到了 getDescription(),但无法让它工作,我什至不确定这是否是正确的方法

我想要什么

  • 另外,我想获取附件文件名,因为它是每封电子邮件的独特标记
  • 非常感谢任何帮助。提前致谢

【问题讨论】:

    标签: javascript google-apps-script google-sheets gmail


    【解决方案1】:

    修改:

    对你在问题中提到的post的答案做如下修改:

    • 添加这些行:

      var attachments = messages[maxIndex].getAttachments();
      var attNames = attachments.map(att=>att.getName());
      
    • 并修改这个:

      ss.appendRow([from, cc, time, sub,...attNames ,'https://mail.google.com/mail/u/0/#inbox/'+mId])
      

    解决方案:

    function myFunction() {
      // Use sheet
      var ss = SpreadsheetApp.getActiveSheet();
      // Gmail query
      var query = "label:support -label:trash -label:support-done -from:me";
      // Search in Gmail, bind to array
      var threads = GmailApp.search(query);
      // Loop through query results
      for (var i = 0; i < threads.length; i++)
      {
        // Get messages in thread, add to array
        var messages = threads[i].getMessages();
    
        // Used to find max index in array
        var max = messages[0];
        var maxIndex = 0;
    
        // Loop through array to find maxIndexD = most recent mail
        for (var j = 0; j < messages.length; j++) {
          if (messages[j] > max) {
            maxIndex = j;
            max = messages[j];
          }
        } 
        // Find data
        var mId = messages[maxIndex].getId() // ID used to create mail link
        var from = messages[maxIndex].getFrom();
        var cc = messages[maxIndex].getCc();
        var time = threads[i].getLastMessageDate()
        var sub = messages[maxIndex].getSubject();
        var attachments = messages[maxIndex].getAttachments();
        var attNames = attachments.map(att=>att.getName());
    
        // Write data to sheet
    ss.appendRow([from, cc, time, sub,...attNames ,'https://mail.google.com/mail/u/0/#inbox/'+mId])
      }
    }
    

    不要忘记将query 的值更改为您的需要。

    参考资料:

    你必须enable V8运行时才能使用sn-p。

    【讨论】:

    • 感谢您的快速回复。我已经对其进行了测试,它会返回附件名称,例如:“[Ljava.lang.Object;@9d63714”。这不是我要找的东西......我正在尝试获得类似:“付款证明 Ref. 3498.pdf”
    猜你喜欢
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多