首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将动态内容添加到html中,以便用Python发送邮件

如何将动态内容添加到html中,以便用Python发送邮件
EN

Stack Overflow用户
提问于 2019-05-22 11:59:39
回答 2查看 2.9K关注 0票数 3

我在python中使用'smtplib‘发送带有html内容的邮件,我希望向该html添加动态内容。

代码语言:javascript
复制
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标记中包含一些动态内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-22 12:14:13

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

代码语言:javascript
复制
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)
票数 5
EN

Stack Overflow用户

发布于 2019-05-22 12:13:17

要包含动态内容,只需从数据源获取数据并根据需要将它们连接到邮件正文。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56256328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档