Google 应用程序脚本:使用 mailapp.sendmail 服务发送仅带有偶尔附件的邮件
Google apps script: use the mailapp.sendmail service to send mails with only occasional attachments
请耐心等待,我是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
);
我想这与我如何定义附件变量有关。感谢您的帮助。
马丁
附件必须在您的驱动器中并且此文件是 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()
终于找到了解决方案,我确定这不是最优雅的但它有效:
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();
}
请耐心等待,我是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
);
我想这与我如何定义附件变量有关。感谢您的帮助。 马丁
附件必须在您的驱动器中并且此文件是 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()
终于找到了解决方案,我确定这不是最优雅的但它有效:
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();
}