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

How can I make the code pause 5 seconds after every email sent

每次发送电子邮件时,我都需要代码休眠 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()

尝试将睡眠方法转移到循环体中。像这样

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()

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

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

所以每次你调用 server.sendmail 然后等待 5 秒