请耐心等待,我是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
);
我想这与我如何定义附件变量有关。感谢帮助。 马丁
答案 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();
}