我正在制作一个自动电子邮件发送程序与python为我的工作。基本上,我需要每天发送客户名单给经理。
我想做的是,为客户的名字做一个列表,制作html模板并发送它。
它基本上起作用了,但我讨厌那些名单的括号。我也想发送美丽的名单:第一名乘客在第一句,第二名乘客在第二句,不是像每一名乘客在一句与",
import smtplib
import ssl
from email.message import EmailMessage
namelist = []
while True:
name = input("Name: ")
question = int(input("More passenger? Yes=1, No=2 "))
if question == 1:
namelist.append(name)
print(namelist)
elif question == 2:
namelist.append(name)
print(namelist)
ready_question = int(input("Ready to send email? Yes=1, No=2 "))
if ready_question == 1:
break
else:
continue
else:
namelist.append(name)
print("Press 1 or 2")
continue
subject = ""
body1 = ""
body2 = ""
body3 = "{}".format(namelist)
sender_email = ""
receiver_email = ""
password = ""
message = EmailMessage()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject
html = f"""
<html>
<body>
<h1></h1>
<p>{body1}</p>
<p>{body2}</p>
<p>{body3}</p>
</body>
</html>
"""
message.add_alternative(html, subtype="html")
context = ssl.create_default_context()
print("Sending Email!")
with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message.as_string())
print("Email Sent")
发布于 2022-02-21 13:27:33
我也想发送美丽的名单:第一名乘客在第一句,第二名乘客在第二句,不是像每一名乘客在一句与",
你在做什么
body3 = "{}".format(namelist)
它为您提供了python对列表的表示,您可以使用str
实例的str
方法来获取它所连接的列表元素,例如,使用您可能做的三个空格:
namelist = ["Able","Baker","Charlie"]
body3 = " ".join(namelist)
print(body3)
输出
Able Baker Charlie
考虑到您希望在单独的行中使用名称并使用HTML,那么我建议您使用<br>
作为分隔符,即
body3 = "<br>".join(namelist)
https://stackoverflow.com/questions/71207019
复制相似问题