<p>要调用html正文中的变量,只需将它们转换为字符串将它们连接到正文中</p>
<pre><code>from datetime import datetime
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
today = datetime.today ()
tday = today.strftime ("%m-%d-%Y")
# email subject, from , to will be defined here
msg = MIMEMultipart()
html = """\
<html>
<head></head>
<body>
<p>Hi!<br>
How are you?<br>
""" +str(today)+ """ and """ +str(tday)+ """
</p>
</body>
</html>
"""
msg.attach(MIMEText(html, 'html'))
</code></pre>
<p>有关附件,请查看<a href="http://naelshiab.com/tutorial-send-email-python/" rel="nofollow noreferrer">http://naelshiab.com/tutorial-send-email-python/</a></p>
<p><strong>编辑:</strong>
上面提供的链接似乎不可用,因此通过电子邮件(特别是从gmail)发送附件的代码片段如下</p>
<pre><code>import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
msg = MIMEMultipart()
msg['From'] = "from email address"
msg['To'] = "to email address"
msg['Subject'] = "Subject line"
body = """Body
content"""
msg.attach(MIMEText(body, 'plain'))
attachment = open("/path/to/file", "rb")
p = MIMEBase('application', 'octet-stream')
# To change the payload into encoded form
p.set_payload((attachment).read())
# encode into base64
encoders.encode_base64(p)
p.add_header('Content-Disposition', "attachment; filename= %s" % filename)
# attach the instance 'p' to instance 'msg'
msg.attach(p)
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls() # for security
s.login("from email address", "your password")
text = msg.as_string()
# sending the mail
s.sendmail("from email address", "to email address" , text)
s.quit()
</code></pre>
<p>注意:Google有时会阻止其他应用程序(不太安全的应用程序)的登录,因此需要在Google帐户设置中允许此访问
<a href="https://myaccount.google.com/u/1/lesssecureapps?pli=1&pageId=none" rel="nofollow noreferrer">https://myaccount.google.com/u/1/lesssecureapps?pli=1&pageId=none</a></p>