MailApp.sendEmail通过电子邮件向不是收件人的用户发送电子邮件

汤姆

(注意:为了清楚起见,我编辑了标题)

我一直在试图找出导致此问题的原因,但无济于事。

我创建了一个Google脚本,允许请求者提交Google表格以供批准。提交后,它将通过电子邮件发送给请求者。它还会通过电子邮件向批准者发送批准或拒绝批准的选项。我的问题:请求者也收到了相同的批准者邮件。

这是代码的快照,以供您查看和提供支持:

function emailSpreadsheetAsPDF(time, approverEmail, requesterEmail, financeEmail, approvalNeeded) {

var timestamp = time;
var approverEmail = approverEmail;
var requesterEmail = requesterEmail;
var financeEmail = financeEmail;
var approvalNeeded = approvalNeeded;
Logger.log("Approver: " + approverEmail);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Form"); // Enter the name of the sheet here

//*******************************************
//* Enter the name of the TEMP folder ID here
//*******************************************

var TEMPfolderid = "xxxyyyzzz";     // TEMP folder to store the PDF export
var body4Requester = "\n\nAttached is a PDF copy of the Price Maintenance Form that you submitted. \n\nPlease note that you will be automatically notified via email when: \n(a) Your request is approved (or disapproved), and \n(b) When it is approved and already processed in SAP. \n\nAPAC Finance Team";
var body4Finance = "\n\nAttached is a PDF copy of the Price Maintenance Form submitted by " +  requesterEmail + ". It does not require an approval as per current policy.\n\nKindly process.";

var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());

// Specify PDF export parameters
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
     + '&size=A4' // paper size legal / letter / A4
     + '&portrait=false' // orientation, false for landscape
     + '&fitw=true&source=labnol' // fit to page width, false for actual size
     + '&sheetnames=false&printtitle=false' // hide optional headers and footers
     + '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines
     + '&fzr=false' // do not repeat row headers (frozen rows) on each page
     + '&gid='; // the sheet's Id

var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + url_ext + sheet.getSheetId(), {
        headers : {
            'Authorization' : 'Bearer ' + token
        },
        muteHttpExceptions: true
    });

var pdfFile = response.getBlob();

//Create the file...
var file = DriveApp.createFile(pdfFile).setName(timestamp + ".pdf");

//Store the file's ID for retrieval later during approval and post-SAP processing
var PDFfileID = file.getId();

//Save the file in TEMP folder 
DriveApp.getFolderById(TEMPfolderid).addFile(file);    

//Now, get the file and email as attachment
var blob = DriveApp.getFileById(file.getId());

// Email with Approve/Disapprove link
var url = ScriptApp.getService().getUrl();

var options = '?approval=%APPROVE%&timestamp=%TIMESTAMP%&reply=%EMAIL%&pdffileid=%FILEID%'
     .replace("%TIMESTAMP%",encodeURIComponent(timestamp))
     .replace("%EMAIL%",requesterEmail)    
     .replace("%FILEID%",PDFfileID);  
var approve = url+options.replace("%APPROVE%","Approved"); 
var disapprove = url+options.replace("%APPROVE%","Disapproved");

var html = "<body>"+
            "Attached is the Price Change request<br /><br />"+
            "<a href="+ approve +">Approve</a><br />"+
            "<a href="+ disapprove +">Disapprove</a><br />"+
         "</body>";

if (approvalNeeded == "Yes") {           //send email with Approve and Disapprove option to Approver
    MailApp.sendEmail(approverEmail, "TEST ONLY: Price Maintenance Form for your approval", body4Requester, {  
                htmlBody: html,
                attachments : [blob]
                });

    MailApp.sendEmail(requesterEmail, "TEST ONLY: Your Price Maintenance request has been submitted", body4Requester, {  
                attachments : [blob]
                });

} else {                                 //send straight to Finance
    MailApp.sendEmail(financeEmail, "TEST ONLY: Price Maintenance Form for processing. No approval neeed", body4Finance, {
                cc:requesterEmail,
                attachments : [blob]
                }); 
}}

不确定是否相关-我将其部署为Web应用程序,设置为“以用户身份访问Web应用程序执行应用程序”。

非常感谢您的任何建议。

汤姆

我尝试用GmailApp.sendEmail替换MailApp.sendEmail。有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用MailApp.sendEmail发送电子邮件两次

来自分类Dev

AppEngine:向管理员发送电子邮件,记为“通过电子邮件发送的收件人”,而不是“通过电子邮件发送的管理员”

来自分类Dev

从付费帐户发送带有附件的电子邮件时,MailApp.sendEmail无法正常工作

来自分类Dev

如何阻止通过MailApp.sendEmail发送的电子邮件进入Outlook中的垃圾文件夹?

来自分类Dev

评估然后从 MailApp 电子邮件发送 HTML

来自分类Dev

通过Google向多个收件人发送电子邮件

来自分类Dev

通过nodemailer向多个收件人发送电子邮件

来自分类Dev

MS CRM通过WebService向多个收件人发送电子邮件

来自分类Dev

通过CDO向包含其记录的多个收件人发送电子邮件

来自分类Dev

MS CRM通过WebService向多个收件人发送电子邮件

来自分类Dev

需要通过组合框向多个收件人发送电子邮件

来自分类Dev

MailApp 错误:对于我尝试发送的每封电子邮件,“邮件被拒绝”

来自分类Dev

使用mailApp发送包含图片和其他内容的电子邮件

来自分类Dev

多收件人PHP电子邮件表单不发送电子邮件

来自分类Dev

如何在春季向多个收件人发送电子邮件

来自分类Dev

如何使用Mandrill API向多个收件人发送电子邮件?

来自分类Dev

使用VBA向多个收件人发送电子邮件

来自分类Dev

如何使用下拉列表Excel VBA向多个收件人发送电子邮件

来自分类Dev

如何使用下拉列表Excel VBA向多个收件人发送电子邮件

来自分类Dev

如何在opencart中向多个收件人发送电子邮件?

来自分类Dev

向Alfresco中的多个收件人发送电子邮件

来自分类Dev

C# MVC 向多个收件人发送电子邮件

来自分类Dev

使用 Python 和 O365 向多个收件人发送电子邮件

来自分类Dev

需要从过滤器数据向多个收件人发送电子邮件

来自分类Dev

如何向数据库表中的多个收件人发送电子邮件?

来自分类Dev

从 .Net 应用程序向收件人发送电子邮件,我想检索单击链接的收件人的电子邮件

来自分类Dev

使用Google Apps脚本(MailApp.sendEmail)设置正文电子邮件文本格式的替代方法

来自分类Dev

如何强制Google App脚本MailApp.sendEmail对循环中的每个电子邮件使用新线程?

来自分类Dev

使用Google Apps脚本(MailApp.sendEmail)设置正文电子邮件文本格式的替代方法

Related 相关文章

  1. 1

    使用MailApp.sendEmail发送电子邮件两次

  2. 2

    AppEngine:向管理员发送电子邮件,记为“通过电子邮件发送的收件人”,而不是“通过电子邮件发送的管理员”

  3. 3

    从付费帐户发送带有附件的电子邮件时,MailApp.sendEmail无法正常工作

  4. 4

    如何阻止通过MailApp.sendEmail发送的电子邮件进入Outlook中的垃圾文件夹?

  5. 5

    评估然后从 MailApp 电子邮件发送 HTML

  6. 6

    通过Google向多个收件人发送电子邮件

  7. 7

    通过nodemailer向多个收件人发送电子邮件

  8. 8

    MS CRM通过WebService向多个收件人发送电子邮件

  9. 9

    通过CDO向包含其记录的多个收件人发送电子邮件

  10. 10

    MS CRM通过WebService向多个收件人发送电子邮件

  11. 11

    需要通过组合框向多个收件人发送电子邮件

  12. 12

    MailApp 错误:对于我尝试发送的每封电子邮件,“邮件被拒绝”

  13. 13

    使用mailApp发送包含图片和其他内容的电子邮件

  14. 14

    多收件人PHP电子邮件表单不发送电子邮件

  15. 15

    如何在春季向多个收件人发送电子邮件

  16. 16

    如何使用Mandrill API向多个收件人发送电子邮件?

  17. 17

    使用VBA向多个收件人发送电子邮件

  18. 18

    如何使用下拉列表Excel VBA向多个收件人发送电子邮件

  19. 19

    如何使用下拉列表Excel VBA向多个收件人发送电子邮件

  20. 20

    如何在opencart中向多个收件人发送电子邮件?

  21. 21

    向Alfresco中的多个收件人发送电子邮件

  22. 22

    C# MVC 向多个收件人发送电子邮件

  23. 23

    使用 Python 和 O365 向多个收件人发送电子邮件

  24. 24

    需要从过滤器数据向多个收件人发送电子邮件

  25. 25

    如何向数据库表中的多个收件人发送电子邮件?

  26. 26

    从 .Net 应用程序向收件人发送电子邮件,我想检索单击链接的收件人的电子邮件

  27. 27

    使用Google Apps脚本(MailApp.sendEmail)设置正文电子邮件文本格式的替代方法

  28. 28

    如何强制Google App脚本MailApp.sendEmail对循环中的每个电子邮件使用新线程?

  29. 29

    使用Google Apps脚本(MailApp.sendEmail)设置正文电子邮件文本格式的替代方法

热门标签

归档