自动电子邮件发送可以应用于许多场景。下面是如何用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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。