首页 > 解决方案 > 如何在每封电子邮件发送后让代码暂停 5 秒

问题描述

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

标签: pythonemailsmtplib

解决方案


尝试将 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()

推荐阅读