【问题标题】:How to get the threadID for a draft message using google apps script如何使用谷歌应用脚​​本获取草稿消息的线程 ID
【发布时间】:2019-04-18 20:48:47
【问题描述】:

我想获取我使用以下代码创建的草稿的 threadID。 在请求 draftID 时,它看起来像 draftID != threadID。

我想要threadID,以便在用户被重定向到gmail页面时打开带有threadID的url。

下面附上代码。

我已经尝试过如下代码所示的 draftID。

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries1 = [{
    name : "Email All Volunteers",
    functionName : "myFunction"
  }];
  sheet.addMenu("Volunteers", entries1);
};

function myFunction() {

   var spsheets = SpreadsheetApp.getActiveSpreadsheet();
   var masterSheet = spsheets.getSheetByName("Master");
   var lastColumnValue = masterSheet.getRange(3, 5, 50, 1).getValues(); //masterSheet.getLastRow()
   var emailSstring = lastColumnValue.join();
   Logger.log(emailSstring);

GmailApp.createDraft('', '', '', {
    bcc: emailSstring
});

  // Get the first draft message in your drafts folder
var draft = GmailApp.getDrafts()[0];
// Get its ID
var draftId = draft.getId();

// Now fetch the same draft using that ID.
var draftById = GmailApp.getDraft(draftId);
  Logger.log(draftById);
  var url = "https://mail.google.com/mail/u/0/#drafts/" + draftId;
//  var url = "https://www.googleapis.com/upload/gmail/v1/users/me/drafts"
  openUrl(url);
}
/**
 * Open a URL in a new tab.
 */
function openUrl( url ){
  var html = HtmlService.createHtmlOutput('<html><script>'
  +'window.close = function(){window.setTimeout(function(){google.script.host.close()},9)};'
  +'var a = document.createElement("a"); a.href="'+url+'"; a.target="_blank";'
  +'if(document.createEvent){'
  +'  var event=document.createEvent("MouseEvents");'
  +'  if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){window.document.body.append(a)}'                          
  +'  event.initEvent("click",true,true); a.dispatchEvent(event);'
  +'}else{ a.click() }'
  +'close();'
  +'</script>'
  // Offer URL as clickable link in case above code fails.
  +'<body style="word-break:break-word;font-family:sans-serif;">Failed to open automatically. <a href="'+url+'" target="_blank" onclick="window.close()">Click here to proceed</a>.</body>'
  +'<script>google.script.host.setHeight(40);google.script.host.setWidth(410)</script>'
  +'</html>')
  .setWidth( 90 ).setHeight( 1 );
  SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." );
}

【问题讨论】:

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


    【解决方案1】:

    试试这个:

    function getDraftId() {
      var drafts=GmailApp.getDraftMessages();
      var html='<style>th,td{border:1px solid black}</style><table>';
      html+=Utilities.formatString('<tr><th>%s</th><th>%s</th></tr>', 'Subject','Id');
      for(var i=0;i<drafts.length;i++) {
        html+=Utilities.formatString('<tr><td>%s</td><td>%s</td></tr>', drafts[i].getSubject(),drafts[i].getId());
      }
      var ui=HtmlService.createHtmlOutput(html);
      SpreadsheetApp.getUi().showModelessDialog(ui, 'My Drafts');
    }
    

    【讨论】:

    • 谢谢库珀,我会试试的。同时我面临另一个错误限制超出:每封邮件的电子邮件收件人。我不能使用该代码在邮件中添加超过 48 个收据。请帮忙!!!
    • 这是quotas
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多