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

Python如何读取HTML文件传递参数后通过邮件发送?

实现HTML模板占位符替换后发送邮件的方法

你当前读取到的HTML内容本身是字符串格式,用Python内置的字符串格式化方法就可以直接替换{name}这类占位符,不需要额外引入依赖,修改方案如下:

修改后完整代码

# 如需处理HTML特殊字符可导入html模块
import html
from email.message import EmailMessage
# 此处默认你已实现好send()发信逻辑

def send_html(send_to=None, subject=None, name=None):
    msg = EmailMessage()
    msg['Subject'] = subject if subject else 'Thank You!'
    msg['From'] = 'abc@abc.com'
    msg['To'] = send_to
    # 读取HTML模板文件
    with open("thankyou.html", "r", encoding='utf-8') as f:
        html_template = f.read()
    # 替换占位符,可根据需要新增更多参数
    # 若参数包含HTML特殊字符建议先转义:name = html.escape(name)
    message = html_template.format(name=name)
    # 设置邮件HTML内容
    msg.set_content(message, subtype='html')
    send(msg)
    return "Email with html sent"

注意事项

  • 如果你有多个占位参数,比如HTML里还有{register_time}、{user_level}这类标记,只需要在format方法里传入对应的键值对即可,示例:html_template.format(name=name, register_time=register_time, user_level=user_level)
  • 如果传入的参数可能包含<、>、&等HTML特殊字符,建议先调用html.escape(参数值)做转义,避免参数内容破坏HTML页面结构,也可规避潜在的XSS风险
  • 如果后续模板逻辑复杂(需要循环、条件判断等),可以引入Jinja2模板引擎处理,语法和现有占位符写法兼容度高,扩展更灵活

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 02:15:03