,,Python实战之自动发送邮件的实现

,,Python实战之自动发送邮件的实现

自动电子邮件发送可以应用于许多场景。下面是如何用Python构建一个自动发送邮件的脚本。有兴趣的朋友可以试试。

:

目录

1.打开SMTP服务2。准备3。写剧本4。自动发送电子邮件可以应用于许多场景。比如我想知道股票策略里有没有股票池的实时更新。这时候再拉数据再运行脚本就是浪费时间了。为什么不把这个过程放在服务器上,然后自动运行,在某个时候发送邮件呢?

类似的应用场景还有很多,不仅在股票策略提醒上,比如定期给一些人发邮件;网站宕机时,实时发送邮件提醒;网站超载,发送电子邮件提醒.诸如此类。

下面是如何用Python构建一个自动发送邮件的脚本。

1.开启SMTP服务

为了自动发送邮件,我们需要在邮箱中打开SMTP服务:

这才是重点。别忘了打开SMTP,否则邮件发送不成功。然后还需要点击下方生成授权码,这是使用Python发邮件时的真实密码。

邮箱设置成功后,就可以开始脚本开发了。

2.准备

在开始之前,您应该确保Python和pip已经成功安装在您的计算机上。如果没有,可以访问这篇文章:超详细的Python安装指南进行安装。

(可选1)如果使用Python进行数据分析,可以直接安装Anaconda,它内置了Python和pip。

(可选2)另外推荐你使用VSCode编辑器,它有很多优点。

请选择以下任一种方式输入命令安装依赖:

1.在windows环境下打开Cmd(开始-运行-CMD)。

2.在Mac OS环境下打开终端(进入终端(命令空间)。

3.如果使用的是VSCode Editor或者Pycharm,可以直接使用界面底部的终端。

pipinstallyagmail

看到成功安装xxx说明安装成功。本文完整源代码可在后台回复获取:自动发送邮件

3.编写脚本

今天需要用到的模块是yagmail,一个非常方便的Python邮件发送模块。有了这个模块,你甚至可以用一行命令发送电子邮件:

yag=yagmail。SMTP(

Host='smtp.qq.com ',user='您的邮箱',

Password='您的验证码',smtp_ssl=True

).发送(['发送对象'],'主题','内容')

为了使这种发送邮件的方法更有用,我们将其封装到一个类中:

进口时间

importyagmail

类别邮件:

'''

邮件相关类

'''

defsendmail(自己、消息、标题、接收者):

'''

发送邮件

参数:

消息{str} -消息正文

标题{str} -消息标题

收件人{列表} -邮件收件人,数组

'''

yag=yagmail。SMTP(

Host='smtp.qq.com ',user='您的邮箱',

Password='您的验证码',smtp_ssl=True

)

尝试:

yag.send(接收者、标题、消息)

打印(“邮件发送成功”)

exceptBaseExceptionase:

打印(e)

打印(“错误:无法发送邮件”)

还有许多其他东西可以封装在这个类中,例如用于显示时间的log函数:

进口时间

importyagmail

类别邮件:

'''

邮件相关类

'''

deflog(自我,内容):

now_time=time.strftime(

%Y-%m-%d %H:%M:%S ',time.localtime()

)

打印(f { now _ time }:{ content } ')

这样,只需要在需要显示时间的时候调用self.log即可。优化后的完整代码如下:

进口时间

importyagmail

类别邮件:

'''

邮件相关类

'''

deflog(自我,内容):

now_time=time.strftime(

%Y-%m-%d %H:%M:%S ',time.localtime()

)

打印(f { now _ time }:{ content } ')

defsendmail(自己、消息、标题、接收者):

'''

发送邮件

参数:

消息{str} -消息正文

标题{str} -消息标题

收件人{列表} -邮件收件人,数组

'''

yag=yagmail。SMTP(

Host='smtp.qq.com ',user='您的邮箱',

Password='您的验证码',smtp_ssl=True

)

尝试:

yag.send(接收者、标题、消息)

Self.log(“邮件发送成功”)

exceptBaseExceptionase:

打印(e)

Self.log('错误:无法发送邮件')

发送成功时显示:

# PS D:\CODE\stock\api python。\sendmail_yagmail.py

021-06-21 00: 00: 00:邮件发送成功。

4.小例子

将刚刚编写的类保存为sendmail.py,然后可以尝试一个小例子。让我们用一个自动监控网站是否关闭的小脚本作为例子:

进口时间

导入请求

fromsendmailimportMail

whileTrue:

response=requests . get(' https://python direct . com ')

#根据状态码判断网站是否正常

ifresponse.status_code!=200:

邮件()。发送邮件(

兄弟,pythondict挂了',' Python实用收藏网站异常监控',['你的邮箱']

)

时间.睡眠(600)

通过requests.get请求网站,并使用response.status_code获取状态代码。200正常,其他情况都不正常。这个测试每十分钟运行一次,所以time.sleep(600)。

这样,我们就构建了一个非常简单的网站异常监控脚本。如果您真的想在服务器上运行这个脚本,请记住使用nohup让它在后台运行:

nohup python test.py

关于Python的自动发邮件在实战中的实现的这篇文章到此为止。关于Python自动邮件的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: