Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 我的Google应用程序脚本可以成功迭代和提取文件附件,但不能提取超链接附件。有什么方法我可以用吗?_Google Apps Script - Fatal编程技术网

Google apps script 我的Google应用程序脚本可以成功迭代和提取文件附件,但不能提取超链接附件。有什么方法我可以用吗?

Google apps script 我的Google应用程序脚本可以成功迭代和提取文件附件,但不能提取超链接附件。有什么方法我可以用吗?,google-apps-script,Google Apps Script,我有一个功能,可以成功地从新电子邮件中提取文件附件。但无法从我们的office扫描仪中检测到类似此电子邮件的超链接附件: 有人知道解决这个问题的方法吗 更新: 我在伦敦发现了一个类似的案例 并在下面修改了我的代码。 结果如下: a) 使用此公开可用URL(people.sc.fsu.edu/~jburkardt/data/csv/addresses.csv)提取超链接附件作为示例附件正常工作,并将其保存在首选文件名中,但 b) 对于来自扫描仪的实际电子邮件,我在执行URLFACHAPP.fet

我有一个功能,可以成功地从新电子邮件中提取文件附件。但无法从我们的office扫描仪中检测到类似此电子邮件的超链接附件:

有人知道解决这个问题的方法吗

更新:

我在伦敦发现了一个类似的案例

并在下面修改了我的代码。 结果如下:

a) 使用此公开可用URL(people.sc.fsu.edu/~jburkardt/data/csv/addresses.csv)提取超链接附件作为示例附件正常工作,并将其保存在首选文件名中,但

b) 对于来自扫描仪的实际电子邮件,我在执行URLFACHAPP.fetch(url)时收到此错误消息:

异常:错误的请求:

是什么导致了这个问题

(我的修订代码如下):

//===================================
函数ExtractEmailAttachmentsJP(){
//===================================
var spr=SpreadsheetApp.getActiveSpreadsheet();
var ss=SpreadsheetApp.getActiveSheet();
var sheet=SS.getSheetByName(“上传程序”);
var logsheet=SS.getSheetByName(“上传的文件”);
TEMPFOLDERID=PropertiesService.getDocumentProperties().getProperty('TEMPFOLDERID');
TEMPFOLDER=DriveApp.getFolderById(TEMPFOLDERID);
//不要覆盖,只需附加到最后一个非空(最大)行
var startRow=lastNonblankRow(“N”,SSID,“上传程序”)+1
计数器=0;//初始化文件附件计数器
var gmailabels=“PeopleDoc”;
var threads=GmailApp.search(“标签:+gmillabels+”是:未读”,0,3);
如果(螺纹长度>0){
SS.toast(“发现新电子邮件。提取附件…”);
/*反复浏览电子邮件的线程*/

对于(var t=0;t如果您想从URL中检索文件,如
http://{ipaddress}/,,
,首先,检查是否可以使用UrlfetchApp从URL检索文件如何?我将探索您建议的解决方案,并让您知道结果,Tanaike san。感谢您的快速响应。
//===================================
function ExtractEmailAttachmentsJP() {
//===================================
  var spr = SpreadsheetApp.getActiveSpreadsheet();
  var ss = SpreadsheetApp.getActiveSheet();
  var sheet = SS.getSheetByName("UPLOADER");
  var logsheet = SS.getSheetByName("Documents Uploaded");

  TEMPFOLDERID = PropertiesService.getDocumentProperties().getProperty('TEMPFOLDERID');
  TEMPFOLDER = DriveApp.getFolderById(TEMPFOLDERID);

  //do not overwrite, just append to the last non-empty (max) row
  var startRow = lastNonblankRow("N",SSID,"UPLOADER")+1
  
  COUNTER = 0;  //initialize file attachment counter

  var gmailLabels  = "PeopleDoc";

  var threads = GmailApp.search("label:" + gmailLabels + " is:Unread", 0, 3);
  
  if (threads.length > 0) {
    
     SS.toast("New emails found. Extracting attachment(s)...");
    
    /*Iterate through the threads of emails*/
    for (var t=0; t<threads.length; t++) {
      var msgs = threads[t].getMessages();

      //Iterate through each mail
      for (var m=0; m<msgs.length; m++) {
          var msg = msgs[m];
          var data = msg.getPlainBody();
          var urlField = data.indexOf('http://');
          var url = data.substr(urlField, 117);

          var fileUrl = UrlFetchApp.fetch(url);
          var fileBlob = fileUrl.getBlob();

          COUNTER = COUNTER + 1;
          var timestamp = Utilities.formatDate(new Date(msg.getDate()), "GMT+8", 'dd MMM hh:mm');
          var pdfID = TEMPFOLDER.createFile(fileBlob).setName("attachment" + COUNTER + " " + timestamp).getId();
          
          //show each generic file row by row
          sheet.getRange(startRow-1+COUNTER, 10).setFormula('=HYPERLINK(\"https://drive.google.com/file/d/' + pdfID + '\", \"' + "attachment" + COUNTER + " " + timestamp + '\")');
          sheet.getRange(startRow-1+COUNTER, 15).setValue(pdfID);
          sheet.getRange(startRow-1+COUNTER, 16).setValue("Gmail Inbox");
      }