如何用f-string循环列表并在HTML格式邮件中展示内容
遍历姓名列表生成HTML邮件内容
你可以通过遍历姓名列表生成对应HTML片段的方式实现需求,直接替换原代码中单个name对应的HTML部分即可。以下是修改后的完整可运行代码:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart sender = 'abc@gmail.com' receiver = 'xyz@gmail.com' # 初始化多格式邮件容器(原代码需补充此部分,否则无法正常附加HTML内容) msg = MIMEMultipart() msg['Subject'] = "Email Subject" msg['From'] = sender msg['To'] = receiver # 目标姓名列表 names = ['Tom', 'Jack', 'Peter'] # 遍历列表生成每个姓名对应的HTML段落标签 html_segments = [f"<p>Name: {name}</p>" for name in names] # 拼接成完整的HTML内容 html = '\n'.join(html_segments) send_msg = MIMEText(html, 'html') msg.attach(send_msg) # 发送邮件 s = smtplib.SMTP('localhost') s.sendmail(sender, receiver, msg.as_string()) s.quit()
核心修改点:
- 用列表推导式遍历姓名列表,为每个姓名生成对应的
<p>标签片段 - 通过
'\n'.join()将所有片段拼接成完整HTML,保证邮件内容按预期分行显示 - 补全了
MIMEMultipart对象的初始化(原代码缺失此部分,会导致附加HTML内容时报错)
内容的提问来源于stack exchange,提问作者Edgar
相关产品推荐
相关产品推荐

