300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 加强版!利用python自动发送邮件

加强版!利用python自动发送邮件

时间:2018-12-17 11:55:58

相关推荐

加强版!利用python自动发送邮件

前言

在训练网络的过程中,需要大量的时间,虽然可以预估网络训练完成时间,但蹲点看结果着实有点不太聪明的亚子。

很多人学习python,不知道从何学起。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:1097524789

因此,参照师兄之前发的python利用smtp自动发邮件的代码,我作了些调整,并参照网上的开源代码,整理出了加强版(可以传文件),这样训练的log还有model,或者是远程电脑上的文件都可以通过邮件即时到达接收邮件的邮箱 很方便吧~~

正文

废话不多说,直接上代码。

一、普通文本邮件(作通知训练结束用 :smiley: )

# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMEText# 第三方 SMTP 服务mail_host = "" # SMTP服务器mail_user = "yourname" # 用户名mail_pass = "xxx" # 密码(这里的密码不是登录邮箱密码,而是授权码)sender = 'yourname@' # 发件人邮箱receivers = 'othername@'] # 接收人邮箱content = 'Python Send Mail ! 训练结束!'title = 'Python SMTP Mail 训练结束' # 邮件主题message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码message['From'] = "{}".format(sender)message['To'] = ",".join(receivers)message['Subject'] = titletry:smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465smtpObj.login(mail_user, mail_pass) # 登录验证smtpObj.sendmail(sender, receivers, message.as_string()) # 发送print("mail has been send to {0} successfully.".format(receivers))except smtplib.SMTPException as e:print(e)

二、加强版附件传输邮件

# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Header# Files' Paths:file1 = 'mail.py'file2 = 'maill.py'# 收邮件的地址,可以多个。Receivers = ['receiver1@','receiver2@'] # 邮件主题:title = 'Python SMTP 邮件(文件传输)'# 模拟服务器# SMTP服务器SMTPServer=""# 发邮件的地址Sender="yourname@"# 发送者邮件的授权密码,去163邮箱设置里获取。并非是密码。passwd="xxx" # 创建一个带附件的实例message = MIMEMultipart()message['From'] = Sendermessage['To'] = ",".join(Receivers)message['Subject'] = title# 邮件正文内容message.attach(MIMEText('附件中是要传输的文件。\n ', 'plain', 'utf-8'))message.attach(MIMEText('The files you need are as followed. \n ', 'plain', 'utf-8'))# 构造附件1att1 = MIMEText(open(file1, 'rb').read(), 'base64', 'utf-8')att1["Content-Type"] = 'application/octet-stream'att1["Content-Disposition"] = 'attachment; filename={0}'.format(file1)message.attach(att1)# 构造附件2att2 = MIMEText(open(file2, 'rb').read(), 'base64', 'utf-8')att2["Content-Type"] = 'application/octet-stream'att2["Content-Disposition"] = 'attachment; filename={0}'.format(file2)message.attach(att2)try:mailServer = smtplib.SMTP(SMTPServer, 25) # 25为端口号(邮件),0-1024都被系统占用了# 登录邮箱mailServer.login(Sender, passwd) # 需要的是,邮箱的地址和授权密码# 发送文件mailServer.sendmail(Sender, Receivers, message.as_string())print("邮件发送成功")print("Mail with {0} & {1} has been send to {2} successfully.".format(file1,file2,Receivers))except smtplib.SMTPException as e:print("Error: 无法发送邮件")print(e)

后话

可以把代码加到网络train.py的最后,别忘了在train.py的开头加上:

# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Header

然后你就可以专心忙自己的事情,网络训练结束就自动发邮件啦~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。