如何在 Google MailApp 中提供电子邮件 headers 发送?

How can I supply email headers sending in Google MailApp?

如何使用 Google MailApp api 包含电子邮件 header 的信息?

我需要提供 header 的信息,例如 List-Unsubscribe:List-Unsubscribe-Post:

以下是 Google Apps 脚本的代码示例。似乎没有包含此类电子邮件 header 信息的选项。 sendEmail(recipient, subject, body, options)

// Send an email with two attachments: a file from Google Drive (as a PDF) and an HTML file.
var file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');
var blob = Utilities.newBlob('Insert any HTML content here', 'text/html', 
'my_document.html');
MailApp.sendEmail('mike@example.com', 'Attachment example', 'Two files are attached.', {
                   name: 'Automatic Emailer Script',
                   attachments: [file.getAs(MimeType.PDF), blob]
});

我相信你的目标如下。

  • 您想将 List-UnsubscribeList-Unsubscribe-Post 的自定义 headers 添加到 Gmail 并使用 Google Apps 脚本发送。

这样的话,下面的流程如何?

  1. 创建临时草稿。
    • 在这种情况下,将使用脚本中 MailApp.sendEmail 的参数。
  2. 添加自定义 headers.
  3. 删除草稿。
  4. 使用 Gmail 发送草稿 API。

当这个流程反映到你的脚本中时,它变成如下。

修改后的脚本:

在您使用此脚本之前,please enable Gmail API at Advanced Google services

var obj = {"List-Unsubscribe": "sample1", "List-Unsubscribe-Post": "sample2"}; // Please set the custom headers.

// 1. Create a draft as a temporal.
var file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');
var blob = Utilities.newBlob('Insert any HTML content here', 'text/html', 'my_document.html');
var draft = GmailApp.createDraft('mike@example.com', 'Attachment example', 'Two files are attached.', {
  name: 'Automatic Emailer Script',
  attachments: [file.getAs(MimeType.PDF), blob]
});

// 2. Add the custom headers.
var data = Object.entries(obj).map(([k, v]) => `${k}: ${v}`).join("\n") + "\n" + draft.getMessage().getRawContent();

// 3. Delete Draft.
draft.deleteDraft();

// 4. Send the draft using Gmail API.
var res = Gmail.Users.Messages.send({raw: Utilities.base64EncodeWebSafe(data)}, "me");
console.log(res)
  • 在这个示例中,List-Unsubscribe: sample1List-Unsubscribe-Post: sample2被用作示例值。请根据实际情况修改。

参考文献: