如何给列表中每人发送个性化邮件?批量发送异常及性能咨询
个性化批量邮件发送方案及性能说明
一、实现个性化邮件发送
完全可以实现给每个收件人发送对应内容的邮件,核心是遍历你的DataFrame逐行处理,为每个收件人单独生成并发送专属邮件,而非一次性群发所有内容。
用Python结合pandas和smtplib的示例代码如下:
import pandas as pd import smtplib import time from email.mime.text import MIMEText # 加载你的邮件数据(实际使用时可从CSV/Excel读取) mail_data = pd.DataFrame({ 'email': ['mark@gmail.com', 'eve@gmail.com', 'john@gmail.com'], 'content': ['Hi Mark, bla bla', 'Hi Eve, bla bla', 'Hi, John bla bla'] }) # 配置SMTP服务器信息(根据你的邮箱服务商调整) smtp_host = 'smtp.gmail.com' smtp_port = 587 sender_addr = 'your_account@gmail.com' sender_pwd = 'your_app_specific_password' # 优先使用邮箱的应用专用密码 # 建立SMTP连接并发送邮件 with smtplib.SMTP(smtp_host, smtp_port) as smtp_conn: smtp_conn.starttls() smtp_conn.login(sender_addr, sender_pwd) # 逐行遍历,发送个性化邮件 for _, row in mail_data.iterrows(): receiver = row['email'] personalized_content = row['content'] # 构造邮件 msg = MIMEText(personalized_content, 'plain') msg['From'] = sender_addr msg['To'] = receiver msg['Subject'] = '个性化邮件主题' # 主题也可根据需求个性化 # 发送邮件 smtp_conn.send_message(msg) print(f"邮件已发送至: {receiver}") time.sleep(1) # 添加间隔,避免触发邮箱发送频率限制
关键注意事项:
- 必须逐行处理,每次仅向当前收件人发送其对应的内容,禁止将所有收件人加入同一邮件的收件人列表。
- 所有主流邮箱服务商(如Gmail、Outlook、QQ邮箱)都有发送频率限制,需根据规则控制发送速度,避免账号被临时封禁。
二、普通PC承载数千人任务的可行性
普通PC完全可以承载数千人的邮件发送任务,这个量级的任务对硬件资源(CPU、内存)的消耗极低,主要限制来自网络速度和邮箱服务商的发送频率规则。
优化建议:
- 分批次发送:比如每发送100封后暂停5-10分钟,降低触发反垃圾机制的概率。
- 若需要提升发送效率,可使用多线程/多进程控制并发数,但需确保并发量不超过邮箱服务商的限制,避免账号风险。
内容的提问来源于stack exchange,提问作者Thomas Binaghi
相关产品推荐
相关产品推荐

