python - 如何在html中添加动态内容以在Python中发送邮件

标签 python html email smtplib

我正在 python 中使用“smtplib”发送带有 html 内容的邮件,我想向该 html 添加动态内容。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

message = MIMEMultipart("alternative")
message["Subject"] = "Error Notification"
message["From"] = sender
message["To"] = sender

# Create the plain-text and HTML version of your message
html = """\
    <html>
      <body>
        <p>Hi,<br>
           <span>Something went wrong !</span><br>
        </p>
      </body>
    </html>
    """
part1 = MIMEText(html, "html")

# Add HTML/plain-text parts to MIMEMultipart message
message.attach(part1)
try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())
    print "Successfully sent email"
except smtplib.SMTPException:
    print "Error: unable to send email"

除了上面的 html 之外,我还需要在 body 标记内包含一些动态内容

最佳答案

因为这是Python,所以你可以用字符串做一些非常棒的事情。只需使用特殊名称命名 html 的某些区域,然后使用 replace方法将它们替换为您想要的任何值。

html = """\
    <html>
      <body>
        <p>Hi, $(name)<br>
           <span> $(error) </span><br>
        </p>
      </body>
    </html>
"""

html = html.replace("$(name)", "John")
html = html.replace("$(error)", "Something went wrong!")

print(html)

关于python - 如何在html中添加动态内容以在Python中发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56256328/

相关文章:

css - 用一个目标选择器指定两个元素

android - 为 Android 中的交易电子邮件集成 Mailchimp 的 Mandrill

php - 发送电子邮件并写入数据库不起作用

email - 使用 accounts.ui 包验证电子邮件

python - IPython:将 Python 脚本的输出重定向到文件(如 bash >)

python - 为什么 sphinx automodule 不显示任何模块成员?

python - 生成所有可能的小键盘/小键盘序列

php - 为什么换行符在php代码中不起作用

jquery - 使用 jquery 将 HTML 表转换为 ul li

Python any(iterable) 和 all(iterable) 没有短路和副作用