使用smtplib发送电子邮件中的变量

时间:2019-05-04 18:35:43

标签: python html email

对于一个项目,我希望我的程序将电子邮件发送到我自己的帐户。我目前正在使用smptlib这样做。我发送的电子邮件是用HTML编写的。问题是我不知道如何在此电子邮件中包括变量,因为它们会改变。有人可以帮我吗?

我已经尝试添加不同的语法,例如

import smtplib

msg = EmailMessage()
msg['Subject'] = 'test'
msg['From'] = EMAIL_ADDRESS
msg['To'] = 'niek9999@gmail.com'

msg.set_content('Hello')
percentage = 32 

msg.add_alternative(("""
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" 
...
<li style="font-size: 14px; line-height: 19.6px;"><span style="font-size: 16px; line-height: 22.4px;">percentage: <PERCENTAGE HERE> %</span></li>
..."""
subtype= 'html')


with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
    smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
    smtp.send_message(msg)

但它们似乎无法与msg.add_alternative函数一起使用三重引用方式

这是我的一些代码:

{{1}}

我想达到将要发送的电子邮件中包含此百分比的目标。

我希望有人能帮助我,谢谢!

1 个答案:

答案 0 :(得分:0)

语法f"""{percent}"""当然适用于Python 3.7.0。我只是尝试了一下。请发布到您运行的代码和遇到的错误。

(base) C:\Users\andrás>python
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> percent=20
>>> s=f"""percent is: "{percent}\""""
>>> s
'percent is: "20"'
>>>