在用python做小项目时,经常会遇到类似的需求:定时将数据发给指定的管理员。如果每次都登录服务器下载数据会非常麻烦,因此可以用 Python 配合 Windows 系统自带的任务计划,自动通过电子邮件来发送数据。

发送邮件实现起来非常简单,只需要用到 Python 中的 smtplib 和 email 两个库即可。以前我们也在文章介绍过:简单三步,用 Python 发邮件

今天我们以 QQ 邮箱作为邮件服务器,介绍定时发送的具体实现方法。

设置 QQ 邮箱账户

使用 Python 发送邮件,需要先在 QQ 邮箱中开启 SMTP 功能 、并获得授权码,授权码相当于邮箱的密码,具体操作流程如下:打开 QQ 邮箱设置——账户设置,确保 POP3/SMTP 服务开启,然后点击下方的生成授权码,通过验证步骤即可生成授权码

 

python获取qq邮箱最高效的方法 python qq邮箱发邮件_任务计划

Python 代码

python获取qq邮箱最高效的方法 python qq邮箱发邮件_Python_02

 

python获取qq邮箱最高效的方法 python qq邮箱发邮件_python获取qq邮箱最高效的方法_03

将上面的代码保存为 sent_email.py, 下一步就可以借助 Windows 系统中的任务计划程序,设置定时任务,这样子就会自动运行该程序。

任务计划程序设置

打开任务计划程序,点击创建任务,就会打开任务创建的设置面板,我们需要设置的主要有:任务的触发频率, 任务脚本及其目录等

触发时间设置

如图所示,我们要求每天运行一次,时间为 10:00

 

python获取qq邮箱最高效的方法 python qq邮箱发邮件_任务计划_04

操作设置

操作设置主要是设置该任务计划程序需要自动运行的程序或文件,在这里就是要指定我们刚才保存的 sent_email.py 文件了,这里有一个要注意的地方是,我们一般都是在命令行中通过 Python sent_email.py 的方式来运行 python 程序,为此我们还需要创建一个 cmd 批处理文件,在 txt 中输入:

 

python获取qq邮箱最高效的方法 python qq邮箱发邮件_python_05

然后将其保存为 sent_email.cmd(注意修改后缀名为.cmd),接下来在任务计划程序中填入该路径,就可以了

python获取qq邮箱最高效的方法 python qq邮箱发邮件_python获取qq邮箱最高效的方法_06

 

实现效果

 

python获取qq邮箱最高效的方法 python qq邮箱发邮件_python获取qq邮箱最高效的方法_07

如此一来,就完成了简单的定时发送电子邮件的功能。类似这种需要定时操作的需求,都可以通过 Windows 的任务计划程序来实现。如果你是 Linux 或 Mac,则可以使用cronjobs 工具定时运行脚本达到同样的效果。