基于csv问题用Python发送多封电子邮件



我正在测试用python发送电子邮件,但我不能从csv文件发送多个电子邮件。

CSV文件如下所示

<表类> 名称 邮件 tbody><<tr>name1example@gmail.comname2另一个# gmail.com

我认为这段代码有问题。

代码:

server.connect()     
server.ehlo()  # Can be omitted
server.starttls(context=context)
server.ehlo()  # Can be omitted    
server.login(login, password)

完整代码如下所示:

import smtplib, ssl
port = 587  # For starttls
smtp_server = "smtp.gmail.com"
login = "joo123456h@gmail.com"
password = input("Type your password and press enter:")
message = """Subject: Order confirmation
To: {recipient}
From: {sender}
Hi {name}, thanks for your order! We are processing it now and will contact you soon"""
sender = "new@example.com"

context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.connect('smtp.gmail.com', '587')
server.ehlo()  # Can be omitted
server.starttls(context=context)
server.ehlo()  # Can be omitted   
server.login(login, password)

with open("contacts.csv") as file:
reader = csv.reader(file)
next(reader)  # it skips the header row
for name, email in reader:
server.sendmail(
sender,
email,
message.format(name=name, recipient=email, sender=sender)
)
print(f'Sent to {name}')

如果不工作请告诉我

最新更新