簡體   English   中英

如何在 Google Apps 腳本中使用 MailApp 發送帶有附件的 HTML email?

[英]How to send a HTML email with attachment using MailApp in Google Apps Script?

我正在嘗試在 Google Apps 腳本中編寫代碼以發送 HTML email 並附上我的聯系人列表的附件。 我收到的主要錯誤是這條線

    MailApp.sendEmail(
    emailid[i], 
    "test email",
    Message,
    htmlBody: HtmlMessage,
    attachments: [file.getAs(MimeType.PDF)]
    );

錯誤是在參數列表(第 48 行,文件“Code.gs”)之后參考htmlBody: HtmlMessage : SyntaxError: missing )

我在網上嘗試過其他方法,包括

    MailApp.sendEmail({
    to: emailid[i],
    subject: "This is a test email",
    htmlBody: HtmlMessage,
    attachments: [file.getAs(MimeType.PDF)]  
  });

我收到錯誤:異常:無效的 email:[Ljava.lang.Object;@1456304b(第 51 行,文件“代碼”)

整個代碼:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();

  //BASIC DETAILS
  var name = sheet.getRange(1, 1, 3).getValues();
  var emailid = sheet.getRange(1, 2, 3).getValues();
  var company = sheet.getRange(1, 3, 3).getValues();

  //ATTACHMENTS
  var file = DriveApp.getFileById('XXXXXXXXXXXXXXXXX').getAs('application/pdf').setName('XXXX.pdf');

  //HTML
  var HtmlOutput = HtmlService.createHtmlOutputFromFile('html');
  var HtmlMessage = HtmlOutput.getContent();

  //PLAIN TEXT
  var Message = 
    "Dear <?= name ?>,"+"\n"+
    "XXXXXXXXXXXXXxXXXX"+"\n"+
    "XXXXXXXXXXXX <?= company ?> XXXXXXXXXXXXXXXXXXX"+"\n"+
    "XXXX Link: https://www.XXXX/XXXX"+"\n"+
    "XXXX."+"\n"+
    "With Warm Regards,"+"\n"+
    "XXX"+"\n"+
    "Call: XXXXX"+"\n"+
    "Email: XXXX"+"\n";
  var OriginalMessage = Message;
  var OriginalHtmlMessage = HtmlMessage;

  for( var i = 0 ; i <= 2 ; i++)
  {
    Message = Message.replace("<?= name ?>", name[i]);
    Message = Message.replace("<?= company ?>", company[i]);

    HtmlMessage = HtmlMessage.replace("%name", name[i]);
    HtmlMessage = HtmlMessage.replace("%company", company[i]);

    MailApp.sendEmail(
    emailid[i], 
    "test email",
    Message,
    htmlBody: HtmlMessage,
    attachments: [file.getAs(MimeType.PDF), blob]
    );

    Message = OriginalMessage;
    HtmlMessage = OriginalHtmlMessage;
  }
}

這是 HTML 文件:

<!DOCTYPE html>
<html>

<head>
    <base target="_top">
</head>

<body style="font-family: 'Times New Roman', Times, serif;font-size: 1.5em; padding: 5%;">
    Dear %name,<br>
    <div style="line-height: 2;margin-left:5%;">
        XXXX  XXXXXX XXXXXXX XXXXXXX XXXXXXXX XXXX.<br>
        XXXX  XXXXXX XXXXX %company XXXXXXXX XXXXXXXX XXXXX. <br>
        XXXX  XXXXXX XXXXX: <a href="https://www.XXXX">Link</a><br>
        I XXXXXX XXXX  XXXXX<br></div>
    <div style="line-height: 1.5; padding: 5%;">
        With Warm Regards,<br>
        <b>XXXXx</b><br>
        <a href="tel:+XX-XXXXX">Call: +XX-XXXXX</a><br>
        <a href="mailto:XX@XXXXXX.com">Email: XX@XXXXXX.com</a><br></div>
</body>

</html>

MailApp.SendMail() 的參數應該如何放置?

方法語法是sendEmail(recipient, subject, body, options)

attachmentshtmlBody都是options ,而options

指定高級參數的 JavaScript object

因此,您需要將options作為 JSON object 與鍵值對傳遞:

  MailApp.sendEmail(
    emailid[i][0], 
    "test email",
    Message,
    {
      htmlBody: HtmlMessage,
      attachments: [file.getAs(MimeType.PDF)]
    }
  );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM