首页 文章

无需发送Google脚本即可创建新的Gmail邮件

提问于
浏览
0

为我的Google电子表格编写谷歌脚本 .

如何创建新邮件,填充一些字段(例如“收件人:”)并允许最终用户填写邮件并单击“发送”?

我只能找到“MailApp.sendEmail”发送电子邮件,但没有发送新消息而不发送...

澄清一下:这不是创建“草稿”消息 . 该脚本基本上可以自动执行Gmail中的以下手动过程:1 . 单击“撰写” . 2.输入“收件人:”

......就是这样 . 脚本结束,最终用户离开以完成主题,正文,然后单击“发送” .

这是我写的功能,只是缺少创建此电子邮件的命令:

function contactsSendEmail() {
  var sh = SpreadsheetApp.getActiveSpreadsheet();
  var ss = sh.getActiveSheet(); 

  if (isActiveCellInRange(ss.getRange('Contacts_Table_Anchor').getRow()+1,ss.getRange('Contacts_Table_Anchor').getColumn(),ss.getLastRow(),ss.getLastColumn())) {
    var sh = SpreadsheetApp.getActiveSpreadsheet();
    var ss = sh.getActiveSheet();
    var contactName = ss.getRange(ss.getActiveCell().getRow(),getColumnRowByName('Contacts', 'Name', ss.getRange('Contacts_Table_Anchor').getRow())).getValue();
    var contactEmail = ss.getRange(ss.getActiveCell().getRow(),getColumnRowByName('Contacts', 'Email', ss.getRange('Contacts_Table_Anchor').getRow())).getValue();

    sh.getRangeByName('Email_Sent_To').setValue(contactEmail);

    //Here should come what I'm missing, something like: MailApp.createEmail(contactEmail);
  }
}

1 回答

  • 0

    您可以使用Gmail API在Gmail中创建草稿 . 有关示例代码段,请参阅code.google.com .

    function createDraftHTMLEmail() {
    
      var subject = "testing createDraftHTMLEmail";
      var forScope = GmailApp.getInboxUnreadCount(); // needed for auth scope
      var htmlBody = '<html><body>' + '<h1>World</h1>' + '</body></html>';
    
      var message = 'From: Me <' + myEmailAddress + '>\r\n' +
        'To: Me <' + myEmailAddress + '>\r\n' +
        'Subject: ' + subject + '\r\n' +
        'Content-Type: text/html; charset=utf-8\r\n' +
        'Content-Transfer-Encoding: quoted-printable\r\n\r\n' +
        htmlBody;
    
      var draftBody = Utilities.base64Encode(message);
      draftBody = draftBody.replace(/\//g, '_').replace(/\+/g, '-');
    
      var params = {
        method: "post",
        contentType: "application/json",
        headers: {
          "Authorization": "Bearer " + ScriptApp.getOAuthToken()
        },
        muteHttpExceptions: true,
        payload: JSON.stringify({
          "message": {
            "raw": draftBody
          }
        })
      };
    
      var resp = UrlFetchApp.fetch("https://www.googleapis.com/gmail/v1/users/me/drafts", params);
      Logger.log(resp.getContentText());
    }
    

相关问题