今天在服务器上后台跑包,需要很长时间,为了能第一时间知道,所以通过查资料写了一个发邮件的脚本,在跑完包后会调用这个脚本给我发邮件 。以后可能还会用到这个脚本,所以记录一下。
遇到的问题:
云服务器一般会禁用出方向的25号端口,所以需要用465端口
由于编码的问题需要在开头加上 #coding=utf-8
代码1.0:#coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# --------------------------------------------配置信息开始
mail_host = "smtp.163.com" # 设置服务器(如果是qq邮箱,将163换成qq)
mail_user = 'xiaobendanya77@163.com' # 用户名
mail_pass = '################' # 口令
username = 'xiaobendanya77@163.com' # 发件人名称
getusername = '2372198934@qq.com' # 收件人名称
getmail =['2372198934@qq.com'] # 收件人邮箱
context = '这里填正文' # 内容
title = '这里填标题' # 标题
# ---------------------------------------------配置信息结束
def email():
sender = True
try:
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端口不需要加 _SSL
server.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 = False
return sender
sender = email()
if sender:
print("邮件发送成功 ...")
else:
print("邮件发送失败 ...")
下面的版本对上面的版本做出了优化,虽然在第一个版本中把需要配置的参数放在了前面,方便了配置,但是如果每次需要发送的内容不一样,那都要进行配置一遍,很麻烦。
比如说我编写这个脚本的初衷,为了在跑完包的时候能提醒我是否成功,我只能创建两个发邮件的脚本,一个发的内容是成功,一个发的内容是失败。在很不人性化,所以我优化了带参数运行的机制。通过引入 sys 库调用 然后用sys.argv[] 获取参数,其实就做了一点点改动
运行的时候在后面加上内容:
代码2.0:#coding=utf-8
import smtplib
import sys
from email.mime.text import MIMEText
from email.header import Header
# --------------------------------------------配置信息开始
mail_host = "smtp.163.com" # 设置服务器(如果是qq邮箱,将163换成qq)
mail_user = 'xiaobendanya77@163.com' # 用户名
mail_pass = '################' # 口令
username = 'xiaobendanya77@163.com' # 发件人名称
getusername = '2372198934@qq.com' # 收件人名称
getmail =['2372198934@qq.com'] # 收件人邮箱
context = sys.argv[1] # 内容
title = '这里填标题' # 标题
# ---------------------------------------------配置信息结束
def email():
sender = True
try:
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端口不需要加 _SSL
server.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 = False
return sender
sender = email()
if sender:
print("邮件发送成功 ...")
else:
print("邮件发送失败 ...")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)