我是python的新手,我编写了这个简单的代码,该代码应在向每条记录发送电子邮件的20条记录上循环
import csv,smtplib,time
def send_mail(SEND_TO,title):
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
EMAIL = 'myemail@gmail.com'
PASSWORD = 'password'
server.login(EMAIL, PASSWORD)
temp = f"Subject: Hello\nHi,{title}"
server.sendmail(EMAIL, SEND_TO, temp)
server.close()
return True
except:
return False
with open('test.csv') as f:
clients = [{k: v for k, v in row.items()}
for row in csv.DictReader(f, skipinitialspace=True)]
for i in clients:
send_mail(i['email'],i['Title'])
#time.sleep(30)
由于某种原因,只有第一条记录正在发送电子邮件(我尝试在csv中切换记录位置,它也出现了同样的问题)。
我尝试添加30秒的延迟,但结果仍然相同,这是我做错了吗?
注意:我不想向20名员工发送一封电子邮件,因为每人都会收到一个单独的电子邮件正文。另外,我发送给所有的电子邮件都是gmail