python脚本的失败重试怎么写吗?发送邮件 最多重试五次
时间: 2024-05-05 09:15:48 浏览: 149
以下是一个示例脚本,用于发送邮件并实现失败重试:
```python
import smtplib
import time
MAX_RETRIES = 5 # 最大重试次数
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
SENDER_EMAIL = 'sender@gmail.com'
SENDER_PASSWORD = 'password'
RECEIVER_EMAIL = 'receiver@gmail.com'
def send_email(subject, message):
retries = 0
while retries < MAX_RETRIES:
try:
server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
server.starttls()
server.login(SENDER_EMAIL, SENDER_PASSWORD)
server.sendmail(SENDER_EMAIL, RECEIVER_EMAIL, f'Subject: {subject}\n\n{message}')
server.quit()
print('邮件发送成功!')
return True
except Exception as e:
print(f'邮件发送失败:{e}')
retries += 1
print(f'等待{retries}秒后重试...')
time.sleep(retries)
print('重试次数已达到上限,邮件发送失败。')
return False
if __name__ == '__main__':
subject = '测试邮件'
message = '这是一封测试邮件。'
send_email(subject, message)
```
该脚本将尝试发送邮件,并在失败时进行重试,最多重试五次。如果所有重试都失败,它将打印一条消息并返回 False。
在 `send_email` 函数中,我们使用一个 while 循环来重试发送邮件,直到达到最大重试次数或邮件发送成功。在每次重试之前,我们使用 `time.sleep()` 函数等待一段时间,以避免过度占用资源。如果邮件发送成功,函数将返回 True。
请注意,这仅是一个简单的示例脚本,您可能需要根据自己的需求进行修改和扩展。例如,您可以将 MAX_RETRIES、SMTP_SERVER、SENDER_EMAIL、SENDER_PASSWORD 和 RECEIVER_EMAIL 替换为您自己的值。
阅读全文