1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python 通过 STMP 发送邮件(云服务器可用)

Python 通过 STMP 发送邮件(云服务器可用)

时间:2020-12-11 14:05:23

相关推荐

Python 通过 STMP 发送邮件(云服务器可用)

今天在服务器上后台跑包,需要很长时间,为了能第一时间知道,所以通过查资料写了一个发邮件的脚本,在跑完包后会调用这个脚本给我发邮件 。以后可能还会用到这个脚本,所以记录一下。

遇到的问题:

云服务器一般会禁用出方向的25号端口,所以需要用465端口

由于编码的问题需要在开头加上 #coding=utf-8

代码1.0:

#coding=utf-8import smtplibfrom email.mime.text import MIMETextfrom email.header import Header# --------------------------------------------配置信息开始mail_host = "" # 设置服务器(如果是qq邮箱,将163换成qq)mail_user = 'xiaobendanya77@' # 用户名mail_pass = '################' # 口令username = 'xiaobendanya77@' # 发件人名称getusername = '2372198934@' # 收件人名称getmail =['2372198934@'] # 收件人邮箱context = '这里填正文'# 内容title = '这里填标题' # 标题# ---------------------------------------------配置信息结束def email():sender = Truetry:massage= MIMEText(context, 'plain', 'utf-8')# 加入正文内容massage['From'] = Header(username, 'utf-8')# 加入发件人名称massage['To'] = Header(getusername, 'utf-8')# 加入收件人名称massage['Subject'] = Header(title, 'utf-8')# 加入标题server = smtplib.SMTP_SSL()# 获取服务 25端口不需要加 _SSLserver.connect(mail_host, 465) # 链接服务 25和465都为SMTP端口号server.login(mail_user, mail_pass) # 登录服务server.sendmail(mail_user, getmail, massage.as_string())# 开始发送server.close() #关闭服务except smtplib.SMTPException :sender = Falsereturn sendersender = email()if sender:print("邮件发送成功 ...")else:print("邮件发送失败 ...")

下面的版本对上面的版本做出了优化,虽然在第一个版本中把需要配置的参数放在了前面,方便了配置,但是如果每次需要发送的内容不一样,那都要进行配置一遍,很麻烦。

比如说我编写这个脚本的初衷,为了在跑完包的时候能提醒我是否成功,我只能创建两个发邮件的脚本,一个发的内容是成功,一个发的内容是失败。在很不人性化,所以我优化了带参数运行的机制。通过引入 sys 库调用 然后用sys.argv[] 获取参数,其实就做了一点点改动

运行的时候在后面加上内容:

代码2.0:

#coding=utf-8import smtplibimport sysfrom email.mime.text import MIMETextfrom email.header import Header# --------------------------------------------配置信息开始mail_host = "" # 设置服务器(如果是qq邮箱,将163换成qq)mail_user = 'xiaobendanya77@' # 用户名mail_pass = '################' # 口令username = 'xiaobendanya77@' # 发件人名称getusername = '2372198934@' # 收件人名称getmail =['2372198934@'] # 收件人邮箱context = sys.argv[1]# 内容title = '这里填标题' # 标题# ---------------------------------------------配置信息结束def email():sender = Truetry:massage= MIMEText(context, 'plain', 'utf-8')# 加入正文内容massage['From'] = Header(username, 'utf-8')# 加入发件人名称massage['To'] = Header(getusername, 'utf-8')# 加入收件人名称massage['Subject'] = Header(title, 'utf-8')# 加入标题server = smtplib.SMTP_SSL()# 获取服务 25端口不需要加 _SSLserver.connect(mail_host, 465) # 链接服务 25和465都为SMTP端口号server.login(mail_user, mail_pass) # 登录服务server.sendmail(mail_user, getmail, massage.as_string())# 开始发送server.close() #关闭服务except smtplib.SMTPException :sender = Falsereturn sendersender = email()if sender:print("邮件发送成功 ...")else:print("邮件发送失败 ...")

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