Class MailApp

“邮件”应用

发送电子邮件。

借助此服务,用户可以发送电子邮件,并完全控制电子邮件的内容。与 GmailApp 不同,MailApp 的唯一用途是发送电子邮件。MailApp 无法访问用户的 Gmail 收件箱。

与 MailApp 脚本相比,对使用 GmailApp 编写的脚本所做的更改更有可能触发用户发出重新授权请求。

方法

方法返回类型简介
getRemainingDailyQuota()Integer返回您在当天剩余时间内可以向其发送电子邮件的收件人数量。
sendEmail(message)void发送电子邮件。
sendEmail(recipient, subject, body)void发送电子邮件。
sendEmail(recipient, subject, body, options)void发送电子邮件并附带可选实参。
sendEmail(to, replyTo, subject, body)void发送电子邮件。

详细文档

getRemainingDailyQuota()

返回您当天剩余时间内可以向其发送电子邮件的收件人数量。返回的值对当前执行有效,并且可能因执行而异。

配额取决于电子邮件收件人数量。如需了解具体配额信息,请参阅 Google 服务的配额

const emailQuotaRemaining = MailApp.getRemainingDailyQuota();
Logger.log(`Remaining email quota: ${emailQuotaRemaining}`);

返回

Integer - 脚本可以发送的剩余电子邮件数量。

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/script.send_mail

sendEmail(message)

发送电子邮件。这种方法的变体更加灵活,可提供更多选项。

// This code fetches the Google and YouTube logos, inlines them in an email
// and sends the email
function inlineImage() {
  const googleLogoUrl =
      'https://www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_74x24dp.png';
  const youtubeLogoUrl =
      'https://developers.google.com/youtube/images/YouTube_logo_standard_white.png';
  const googleLogoBlob =
      UrlFetchApp.fetch(googleLogoUrl).getBlob().setName('googleLogoBlob');
  const youtubeLogoBlob =
      UrlFetchApp.fetch(youtubeLogoUrl).getBlob().setName('youtubeLogoBlob');
  MailApp.sendEmail({
    to: 'recipient@example.com',
    subject: 'Logos',
    htmlBody: 'inline Google Logo<img src=\'cid:googleLogo\'> images! <br>' +
        'inline YouTube Logo <img src=\'cid:youtubeLogo\'>',
    inlineImages: {
      googleLogo: googleLogoBlob,
      youtubeLogo: youtubeLogoBlob,
    },
  });
}

参数

名称类型说明
messageObject表示电子邮件消息的 JavaScript 对象

高级参数

名称类型说明
attachmentsBlobSource[]要随电子邮件发送的文件数组
bccString以英文逗号分隔的密件抄送电子邮件地址列表
bodyString电子邮件的正文
ccString以英文逗号分隔的抄送电子邮件地址列表
htmlBodyString如果已设置,则能够渲染 HTML 的设备将使用该字段,而不是必需的 body 参数;如果您为电子邮件内嵌了图片,则可以在 HTML 正文中添加可选的 inlineImages 字段
inlineImagesObject一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;这假定使用了 htmlBody 参数,并且包含采用 <img src="cid:imageKey" /> 格式的这些图片的引用(请参阅示例)
nameString电子邮件发件人的姓名。默认为发件人的用户名。
noReplyBooleantrue(如果应使用通用的无回复电子邮件地址发送电子邮件,以阻止收件人回复电子邮件;此选项仅适用于 Google Workspace 账号,不适用于 Gmail 用户)
replyToString要用作默认回复地址的电子邮件地址(默认:用户的电子邮件地址)。如果 noReply 设置为 true,系统会忽略 replyTo
subjectString电子邮件的主题
toString收件人的电子邮件地址,或以英文逗号分隔的收件人电子邮件地址列表

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/script.send_mail

另请参阅


sendEmail(recipient, subject, body)

发送电子邮件。

MailApp.sendEmail(
    'recipient@example.com',
    'TPS reports',
    'Where are the TPS reports?',
);

参数

名称类型说明
recipientString收件人的地址(以英文逗号分隔)
subjectString主题行
bodyString电子邮件的正文

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/script.send_mail

sendEmail(recipient, subject, body, options)

发送电子邮件并附带可选实参。

// Send an email with two attachments: a file from Google Drive (as a PDF) and
// an HTML file.
const file = DriveApp.getFileById('1234567890abcdefghijklmnopqrstuvwxyz');
const 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],
    },
);

参数

名称类型说明
recipientString收件人的地址(以英文逗号分隔)
subjectString主题行
bodyString电子邮件的正文
optionsObject用于指定高级参数的 JavaScript 对象,如下所列

高级参数

名称类型说明
attachmentsBlobSource[]要随电子邮件发送的文件数组(请参阅示例)
bccString以英文逗号分隔的密件抄送电子邮件地址列表
ccString以英文逗号分隔的抄送电子邮件地址列表
htmlBodyString如果已设置,则能够渲染 HTML 的设备将使用该字段,而不是必需的 body 参数;如果您为电子邮件内嵌了图片,则可以在 HTML 正文中添加可选的 inlineImages 字段
inlineImagesObject一个 JavaScript 对象,包含从图片键 (String) 到图片数据 (BlobSource) 的映射;这假定使用了 htmlBody 参数,并且包含采用 <img src="cid:imageKey" /> 格式的这些图片的引用
nameString电子邮件发件人的姓名(默认:用户的姓名)
noReplyBooleantrue(如果应使用通用的无回复电子邮件地址发送电子邮件,以阻止收件人回复电子邮件;此选项仅适用于 Google Workspace 账号,不适用于 Gmail 用户)
replyToString要用作默认回复地址的电子邮件地址(默认:用户的电子邮件地址)

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/script.send_mail

另请参阅


sendEmail(to, replyTo, subject, body)

发送电子邮件。借助此方法,用户可以轻松为发送的邮件指定一个“回复地址”,该地址可以与发件人地址不同。

MailApp.sendEmail(
    'recipient@example.com',
    'replies@example.com',
    'TPS report status',
    'What is the status of those TPS reports?',
);

参数

名称类型说明
toString收件人的地址(以英文逗号分隔)
replyToString回复地址
subjectString主题行
bodyString电子邮件正文(纯文本)

授权

使用此方法的脚本需要获得以下一个或多个范围的授权:

  • https://www.googleapis.com/auth/script.send_mail