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

如何通过Gmail API为每位收件人生成含专属邮箱的个性化邮件

用Gmail API发送个性化批量邮件解决方案

没问题!我来帮你搞定这个个性化批量发邮件的需求~ 其实核心思路很简单:因为每封邮件的内容是个性化的,你需要为每个收件人单独生成邮件内容,然后通过Gmail API批量提交这些独立的邮件请求——这样既能实现内容差异化,又能一次性完成发送操作。

下面是具体的实现步骤和代码示例(以JavaScript为例,假设你已经完成了Gmail API的OAuth授权配置):

步骤1:整理收件人列表

先把需要发送的收件人信息整理成数组,方便后续循环处理:

// 收件人列表,每个元素包含邮箱(如果需要其他个性化变量也可以加在这里)
const recipients = [
  { email: 'abc@gmail.com' },
  { email: 'xyz@gmail.com' }
];

步骤2:编写邮件生成工具函数

Gmail API要求邮件内容是URL安全的Base64编码MIME格式,所以我们先写一个函数来生成符合要求的邮件内容:

function createPersonalizedEmail(toEmail, personalizedBody) {
  // 邮件主题
  const emailSubject = 'Welcome Notification';
  // 对主题进行UTF-8编码,避免乱码
  const encodedSubject = `=?utf-8?B?${Buffer.from(emailSubject).toString('base64')}?=`;
  
  // 组装MIME格式的邮件内容
  const emailParts = [
    `To: ${toEmail}`,
    'From: Your Name <your-own-email@gmail.com>', // 替换成你的发件邮箱
    `Subject: ${encodedSubject}`,
    'Content-Type: text/plain; charset=utf-8', // 如果要发HTML邮件可以改成text/html
    '', // 空行分隔邮件头和正文
    personalizedBody
  ];
  
  // 转换为URL安全的Base64编码
  const rawEmail = Buffer.from(emailParts.join('\n'))
    .toString('base64')
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=+$/, '');
  
  return rawEmail;
}

步骤3:批量发送个性化邮件

用Promise.all并行处理所有邮件发送请求,这样比逐个发送效率更高:

const { google } = require('googleapis');
// 假设你已经通过OAuth获取了auth对象
const gmail = google.gmail({ version: 'v1', auth });

async function sendAllPersonalizedEmails() {
  try {
    // 为每个收件人生成发送请求的Promise
    const sendPromises = recipients.map(recipient => {
      // 生成个性化正文
      const body = `Hi ${recipient.email}. We are glad to see you here.`;
      // 生成符合要求的邮件内容
      const rawEmail = createPersonalizedEmail(recipient.email, body);
      
      // 调用Gmail API发送邮件
      return gmail.users.messages.send({
        userId: 'me', // 'me'代表当前授权的用户邮箱
        requestBody: { raw: rawEmail }
      });
    });
    
    // 等待所有邮件发送完成
    await Promise.all(sendPromises);
    console.log('所有个性化邮件都发送成功啦!');
  } catch (error) {
    console.error('发送过程中出现错误:', error);
  }
}

// 执行发送
sendAllPersonalizedEmails();

关键说明和注意事项

  • 为什么要单独生成邮件?:Gmail API的单条send请求只能发送内容完全一致的邮件给多个收件人,无法实现内容差异化。所以必须为每个收件人创建独立的邮件请求。
  • 配额限制:Gmail API有发送配额(比如免费账户每天最多发送500封),如果收件人数量很大,建议分批发送,避免触发限流。
  • HTML邮件支持:如果需要发送HTML格式的个性化邮件,只需要把Content-Type改成text/html,然后把正文换成HTML内容即可。
  • 批量请求优化:如果收件人非常多(比如上千个),可以使用Gmail的批量请求API(batch端点),减少HTTP请求次数,实现更高效的批量发送。

内容的提问来源于stack exchange,提问作者Asad ullah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:34:57