基于Node.js搭建类Mailchimp邮件服务:批量发送需求求助
批量邮件服务搭建方案(替代Google单邮箱限制)
一、Google Workspace合规批量发送方案
普通Gmail账号单日发送限额仅500封,且不支持批量发件的负载分散,改用Google Workspace可以解决:
- 配置群发邮件别名:创建专门的发件别名(如
notify@yourdomain.com),关联多个Workspace账号,实现发送负载拆分,单日限额提升至2000封 - 用Google Apps Script实现程序化发送:
function sendBulkEmails() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("用户列表"); const data = sheet.getDataRange().getValues(); // 跳过表头行 for (let i = 1; i < data.length; i++) { const [email, username] = data[i]; const subject = "系统专属通知"; const body = `您好${username},这是系统向您发送的批量通知邮件`; // 使用提前配置的Workspace别名发送 MailApp.sendEmail({ to: email, subject: subject, body: body, from: "批量通知 <notify@yourdomain.com>" }); // 每发送10封暂停1分钟,规避Google的频率限制 if (i % 10 === 0) { Utilities.sleep(60000); } } } - 必须完成域名的DKIM/SPF/DMARC验证,否则邮件会被标记为垃圾邮件
二、自建Postfix邮件服务器(高并发场景)
如果用户量较大(日均万级以上),自建服务器更灵活:
- 搭建Postfix + Dovecot组合,配置反向解析、DKIM/SPF/DMARC记录,维护IP信誉(避免被邮件服务商拉黑)
- Python批量发送脚本示例:
import smtplib import time from email.mime.text import MIMEText def send_bulk_emails(user_list): smtp_server = "your-mail-server-domain.com" smtp_port = 587 sender_addr = "notify@yourdomain.com" sender_pwd = "your-server-auth-password" with smtplib.SMTP(smtp_server, smtp_port) as server: server.starttls() server.login(sender_addr, sender_pwd) for user in user_list: msg = MIMEText(f"您好{user['username']},这是系统批量通知邮件", "plain", "utf-8") msg["Subject"] = "系统通知" msg["From"] = sender_addr msg["To"] = user["email"] server.send_message(msg) # 控制发送速率,避免触发服务器限制 time.sleep(2)
三、第三方邮件API服务(中小规模首选)
无需维护服务器,自带高送达率,适合中小批量场景:
- 用SendGrid/Mailgun等服务的批量发送接口,示例(SendGrid Python):
import sendgrid from sendgrid.helpers.mail import Mail, To def send_bulk_notifications(user_list): sg = sendgrid.SendGridAPIClient(api_key="your-sendgrid-api-key") from_addr = "notify@yourdomain.com" # 构造批量收件人 tos = [To(email=user["email"], name=user["username"]) for user in user_list] mail = Mail( from_email=from_addr, to_emails=tos, subject="系统批量通知", plain_text_content="您好,这是您的专属系统通知" ) response = sg.send(mail) print(f"发送状态码: {response.status_code}") - 优势:自带发送统计、退订管理,无需维护IP信誉
内容的提问来源于stack exchange,提问作者pathak priyanshu
相关产品推荐
相关产品推荐

