定时运行python脚本并发送邮件_python实现定时发送邮件到指定邮箱
时间: 2023-07-30 10:12:48 浏览: 348
要现定时运行 Python 脚本并发送邮件,可以使用 Python 的第三方库 schedule 和 smtplib。
首先,安装这两个库:
```python
pip install schedule
```
```python
pip install secure-smtplib
```
接下来,编写 Python 脚本,实现定时发送邮件的功能:
```python
import schedule
import time
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 定义发送邮件的函数
def send_email():
# 邮件内容
mail_content = '这是一封测试邮件'
# 发送方信息
sender = '发送方邮箱'
password = '发送方邮箱密码'
# 接收方信息
receivers = ['接收方邮箱']
# 邮件标题和内容
message = MIMEText(mail_content, 'plain', 'utf-8')
message['From'] = Header(sender)
message['To'] = Header(','.join(receivers))
message['Subject'] = Header('测试邮件')
# 发送邮件
try:
smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465)
smtp_obj.login(sender, password)
smtp_obj.sendmail(sender, receivers, message.as_string())
print('邮件发送成功')
except smtplib.SMTPException as e:
print('邮件发送失败', e)
# 定义定时任务
def job():
print('开始发送邮件...')
send_email()
# 设置定时任务,每隔一定时间执行一次
schedule.every(10).minutes.do(job) # 每隔10分钟执行一次
# schedule.every().hour.do(job) # 每小时执行一次
# schedule.every().day.at('10:30').do(job) # 每天10:30执行一次
# 循环执行定时任务
while True:
schedule.run_pending()
time.sleep(1)
```
在上述代码中,`send_email()` 函数定义了如何发送邮件,而 `job()` 函数则定义了定时任务的具体内容。在这里,我们将每隔10分钟执行一次 `job()` 函数,可以根据自己的需要设置定时任务的时间间隔。
最后,在命令行中运行该 Python 脚本即可。注意,为了保证邮件能够正常发送,需要在发送方邮箱的设置中开启 SMTP 服务,并且在代码中填写正确的发送方邮箱和密码。
阅读全文