如何使代码在每次发送电子邮件后暂停5秒

2024-09-27 00:15:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要代码在每次发送电子邮件时休眠5秒,当我使用sleep(5)时,它只发送所有电子邮件,然后暂停

代码:

import pandas as pd
import smtplib
from time import sleep

SenderAddress='<xxxx@gmail.com>'

e = pd.read_excel("C:xxx/Email.xlsx")
sleep(5)
emails = e['Emails'].values
server = smtplib.SMTP("smtp.gmail.com:587")
server.starttls()
server.login('xxx@gmail.com', 'xxxxx')

msg = 'Testing the code'

subject = "Congratulations"
body = "Subject: {}\n\n{}".format(subject,msg)
for email in emails:
  server.sendmail(SenderAddress, email, body)
server.quit()

Tags: 代码importcomserveremailbodymsgsleep
2条回答

只需将sleep(5)放入for循环中:

for email in emails:
    server.sendmail(SenderAddress, email, body)
    sleep(5)

所以每次你打电话给server.sendmail你都要等5秒钟

尝试将sleep方法转移到循环体。像这样

import pandas as pd
import smtplib
from time import sleep

SenderAddress='<xxxx@gmail.com>'

e = pd.read_excel("C:xxx/Email.xlsx")
emails = e['Emails'].values
server = smtplib.SMTP("smtp.gmail.com:587")
server.starttls()
server.login('xxx@gmail.com', 'xxxxx')

msg = 'Testing the code'

subject = "Congratulations"
body = "Subject: {}\n\n{}".format(subject,msg)
for email in emails:
  server.sendmail(SenderAddress, email, body)
  sleep(5)
server.quit()

相关问题 更多 >

    热门问题