python完整实现发送邮件流程

最近需要写个监控程序,需要用将结果以邮件的形式将结果进行通知. 这里把完整的实施过程给整理一下.
第一步,自然是先准备个用于发送邮件的邮箱了
这里,我去163邮箱注册了一个邮箱地址.这里为了在客户端发送邮件,需要对注册好后的邮箱进行设置一下.163邮箱很容易设置. 网页端登进邮箱主页后,点击设置选项后,在下拉菜单里面点击POP3/SMTP/IMAP.这时,左侧页面会有客户端授权密码一栏,点击这一栏, 网页右侧出现设置客户端授权密码,默认是关闭的,因为我们需要用程序发送邮件,程序本身就被当成客户端,所以这里需要点击开启,开启后会自从弹出界面,让你设置授权码(这个授权码是用在程序里面使用的).按照其说明,设置完毕后,就可以了. 这样这个邮箱就可以用在程序里面进行操作了
第二步,程序化执行
这里我们利用python进行实现,当然也可以用其它语言进行操作,只要按照需要输入相应的内容就可以了

# coding: utf-8
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
sender = 'xxxxx@163.com'
receiver = list()#接收者列表
receiver.append('yyyyy@163.com')
copyReceive = list()#抄送者列表
copyReceive.append(sender)#将发件人添加到抄送列表
username = 'xxxxx@163.com'#发件人邮箱账号
password = '****'#授权密码
mailall=MIMEMultipart()
mailall['Subject'] = "测试邮件主题" #记住一定要设置,并且要稍微正式点
mailall['From'] = sender #发件人邮箱
mailall['To'] = ';'.join(receiver) #收件人邮箱,不同收件人邮箱之间用;分割
mailall['CC'] = ';'.join(copyReceive)  #抄送邮箱
mailcontent = '测试邮件正文'
mailall.attach(MIMEText(mailcontent, 'plain', 'utf-8'))
mailAttach = '测试邮件附件内容'
contype = 'application/octet-stream'
maintype, subtype = contype.split('/', 1)
filename = '附加文件.txt'#附件文件所在路径
attfile = MIMEBase(maintype, subtype)
attfile.set_payload(open(filename, 'rb').read())
attfile.add_header('Content-Disposition', 'attachment',filename=('utf-8', '', filename))#必须加上第三个参数,用于格式化输出
mailall.attach(attfile)
fullmailtext = mailall.as_string()
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver+copyReceive, fullmailtext)#发送的时候需要将收件人和抄送者全部添加到函数第二个参数里
smtp.quit()
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值