概述
本文出自: forever121.cn/,转载请注明出处
最近在写 html email时,遇到了个问题。
函数:from email.mime.text import MIMEText
MIMEText 语法结构: MIMEText(html_content, _subtype="html", _charset='gb2312')
`
python 无法对 html_content 中的 %s
进行识别,无法将变量传入
报错 ValueError: unsupported format character '!' (0x21) at index
网上对于 html email 的 讲解较少,无法找到这个报错
在进一步排查中,我发现如果在html_content后不进行传参,也就是
MIMEText("""html....%s....content"""%value, _subtype="html", _charset='gb2312')
邮件发送的内容会直接是 %s
所以我怀疑 html_content
因代码量很大导致%s
无法识别到)
之后我对 html_content
的内容进行的拆分,把 html_content
中 有 %s
和无%s
赋值给变量
如:
header = """
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!--[if IE]><html xmlns="http://www.w3.org/1999/xhtml" class="ie"><![endif]--><!--[if !IE]><!--><html style="margin: 0;padding: 0;" xmlns="http://www.w3.org/1999/xhtml"><!--<![endif]--><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
"""
title = """ <title> %s </title>""" %value
然后将所有的变量加在一起
html = header + title
直接传入 MIMEText(html_content=html, _subtype="html", _charset='gb2312'
就可以了
最后
以上就是悲凉烧鹅为你收集整理的关于 python 发送 html 型 email 时,无法进行传参问题解决方法的全部内容,希望文章能够帮你解决关于 python 发送 html 型 email 时,无法进行传参问题解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复