You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术咨询:能否用Google Apps Script发送指定来源HTML邮件并读取TXT收件人

使用Google Apps Script发送HTML邮件(从本地/网站取内容,TXT文件取收件人)

当然可以实现这个需求!既然你已经用PHPMailer搞定了,转成Google Apps Script其实也不难,我来给你一步步说明怎么操作:

1. 准备工作

  • 把存储收件人的TXT文件上传到你的Google Drive(如果是本地文件的话),建议TXT格式用每行一个邮箱地址,或者用逗号/分号分隔;
  • 如果是从自己的网站获取HTML内容,确保该页面可以公开访问(若需登录验证,后续要额外配置请求头);
  • 如果是本地HTML文件,同样上传到Google Drive。

2. 读取收件人TXT文件内容

先从Google Drive读取TXT内容,解析成收件人邮箱数组:

function getRecipientsFromTXT() {
  // 替换成你的TXT文件名或文件ID
  const txtFile = DriveApp.getFilesByName("recipients.txt").next();
  const content = txtFile.getBlob().getDataAsString();
  
  // 按行分割并过滤空字符串
  const recipients = content.split("\n").filter(email => email.trim() !== "");
  return recipients;
}

提示:如果你的TXT是逗号分隔邮箱,把split("\n")改成split(",")即可。

3. 获取HTML邮件内容

情况一:从你的网站获取HTML内容

用UrlFetchApp直接请求网页内容:

function getHtmlFromWebsite() {
  const url = "https://www.abc.tld/htmlbody.html";
  const response = UrlFetchApp.fetch(url);
  return response.getContentText();
}

注意:如果网站需要登录,可在fetch方法里添加headers参数携带认证信息。

情况二:从Google Drive的本地HTML文件获取

function getHtmlFromDriveFile() {
  // 替换成你的HTML文件名或文件ID
  const htmlFile = DriveApp.getFilesByName("email-body.html").next();
  return htmlFile.getBlob().getDataAsString();
}

4. 发送HTML邮件

把上面的功能整合,循环发送邮件(注意谷歌的邮件发送限额):

function sendHtmlEmails() {
  const recipients = getRecipientsFromTXT();
  // 二选一:从网站取HTML 或 从Drive文件取HTML
  const htmlBody = getHtmlFromWebsite(); 
  // const htmlBody = getHtmlFromDriveFile();
  
  const subject = "你的邮件主题";
  // 纯文本备用(适配不支持HTML的邮箱)
  const plainTextBody = "请使用支持HTML的邮箱查看此邮件内容";
  
  recipients.forEach(recipient => {
    try {
      MailApp.sendEmail({
        to: recipient.trim(),
        subject: subject,
        body: plainTextBody,
        htmlBody: htmlBody
      });
      console.log(`邮件已发送至 ${recipient}`);
    } catch (error) {
      console.error(`发送邮件至 ${recipient} 失败: ${error.message}`);
    }
  });
}

关键说明

  • 和PHPMailer不同,Google Apps Script里的MailApp默认使用谷歌OAuth认证,第一次运行脚本时授权邮件权限后,无需额外配置clientId和clientSecret;
  • 免费版谷歌账号每天最多发送100封邮件,Workspace账号限额更高,注意不要超出;
  • 确保Drive里的文件是你所有,或已给脚本授予读取权限(共享文件可设置为“任何人可查看”)。

内容的提问来源于stack exchange,提问作者Andre 'Jors' G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:39:57