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

Python如何合并多组数据仅发送单封邮件 解决循环发多封问题

代码调整方案

你只需要将「多组数据合并」逻辑和「邮件发送」逻辑拆分,发送逻辑仅执行一次即可,修改后的完整代码如下:

# 合并所有待发送内容,两条数据之间用空行分隔
full_content = '\n\n'.join(result)

# 仅构造、发送一次邮件
msg = EmailMessage()
msg.set_content(full_content)
msg['From'] = email_address
msg['To'] = recipient_address
msg['Subject'] = subject_desc

server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("youremail@gmail.com", password)
print("login success")
server.send_message(msg)
print("汇总邮件已发送")
server.quit()

如果result中的元素不是字符串类型,可以将合并代码修改为:

full_content = '\n\n'.join(str(item) for item in result)

原代码问题说明

  • 最初版本将邮件构造、SMTP连接、发送的全流程放在遍历result的循环内,有多少条数据就会触发多少次发送,自然会收到多封独立邮件
  • 你尝试编写的自定义函数没有解决核心逻辑问题:即使完成了数据合并,只要发送逻辑还在循环内,依旧会多次发送,同时该函数存在参数与循环变量重名的问题,属于无效实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:08