Google应用脚本:使用mailapp.sendmail服务仅发送偶尔附件的邮件

时间:2015-02-19 10:21:10

标签: javascript google-apps-script

请耐心等待,我是GAS的新手。我正在尝试使用mailapp.sendmail服务发送只带偶尔附件的邮件。不知何故,它结束于没有附件工作的变体或带附件的变体,但从不都是两者。这是代码:

function sendMail(tomail, subject, fill_cell, messageTemplate, EMAIL_SENT, fileAttach) {
  if (fileAttach == "noFile" )
     { var fileAttachHolder = ' ' }
   else
     { var fileAttachHolder = fileAttach + '.getAs(MimeType.PDF) '};   
  MailApp.sendEmail(tomail, subject,'', {htmlBody: messageTemplate, attachments: [fileAttachHolder]});
  fill_cell.setValue(EMAIL_SENT);
  SpreadsheetApp.flush();
  // Browser.msgBox('Mail sent: '+ subject);
}

调用这样的函数:

 if ((emailSent != EMAIL_SENT)  && row[4] > now ) {  // Prevents sending duplicates or outdated
  sendMail(
    emailAddress,
    "Hi, " + row[1] + " " + row[3],
    sheet.getRange(startRow + i, 18),
    HMESSAGE,
    EMAIL_SENT            
  );

我想这与我如何定义附件变量有关。感谢帮助。 马丁

2 个答案:

答案 0 :(得分:2)

附件必须位于您的驱动器中,此文件是blobType。

我可以向您展示我的剧本示例。

function sendEmail() {

var Rainfall = DriveApp.getFilesByName('Untitled document')
var Rainfall2 = DriveApp.getFilesByName('128x128_tl_icon.png')

MailApp.sendEmail({
to:"mymail@gmail.com", 
subject: "Images for Social Media", 
body:"Hi Joe, here are the images for Social Media",


attachments: [Rainfall.next(), Rainfall2.next()]
  })

}
sendEmail()

答案 1 :(得分:0)

终于找到了一个解决方案,我肯定不是最优雅但它有效:

    function sendMail(tomail, subject, fill_cell, messageTemplate, EMAIL_SENT) {  
  MailApp.sendEmail(tomail, subject,'', {htmlBody: messageTemplate});
  fill_cell.setValue(EMAIL_SENT);
  SpreadsheetApp.flush();

}

    function sendMailwAtt(tomail, subject, fill_cell, messageTemplate, EMAIL_SENT, fileAttach) {  
  MailApp.sendEmail(tomail, subject,'', {htmlBody: messageTemplate, attachments: [fileAttach.next()]});
  fill_cell.setValue(EMAIL_SENT);
  SpreadsheetApp.flush();

}