python基础-发邮件smtp

先来想下发送邮件需要填写什么,还需要有什么条件
1.与邮件服务器建立连接,用户名和密码
2.发邮件:发件人,收件人,主题,内容,附件
3.发送

 使用第三方邮箱发送邮件

#! /usr/bin/env python
#coding=utf-8

import smtplib
import email.mime.multipart
import email.mime.text

from email.mime.application import MIMEApplication

'''
先来想下发送邮件需要填写什么,还需要有什么条件
1.与邮件服务器建立连接,用户名和密码
2.发邮件:发件人\收件人\主题\内容\附件
3.发送
'''




class SendMail:
    
    def send_mail(self, title):
        msg=email.mime.multipart.MIMEMultipart()#生成包含多个邮件体的对象
        msg['from']='huipaodexiong@126.com'
        msg['to']='huipaodexiong@126.com'
        msg['subject']= title
        content='''
        Hi all,
        这是一封huipaodexiong自动化测试发送的邮件
        QQ:xxxxxxx
        博客:http://www.cnblogs.com/R-bear/            
        微信号:xxxxxxx            
        带附件
        '''
        print('成功1')
        #邮件正文,将文件正文当成附件发送,当正文内容很多时,提高效率
        txt=email.mime.text.MIMEText(content)
        msg.attach(txt)
        print('成功2')
        
        #excel附件--固定格式
        xlsxpart = MIMEApplication(open('laohuangli-testcase1.xlsx', 'rb').read())
        xlsxpart.add_header('Content-Disposition', 'attachment', filename='laohuangli-testcase1.xlsx')
        msg.attach(xlsxpart)

        #jpg图片附件
        jpgpart = MIMEApplication(open('接口测试框架.jpg', 'rb').read())
        jpgpart.add_header('Content-Disposition', 'attachment', filename='接口测试框架.jpg')
        msg.attach(jpgpart)
        
        
        #发送邮件
        smtp=smtplib
        smtp=smtplib.SMTP()
        smtp.set_debuglevel(1)#设置为调试模式,console中显示
        print('成功3')
        smtp.connect('smtp.126.com','25') #链接服务器,smtp地址+端口
        print('成功4')
        smtp.login('huipaodexiong@126.com','XXXXXXXX') #登录,用户名+密码
        print('成功5')
        smtp.sendmail('huipaodexiong@126.com','huipaodexiong@126.com',str(msg)) #发送,from+to+内容
        smtp.quit()
        print('发送邮件成功')

mail = SendMail()
mail.send_mail('测试文件')

结果:

 

遇到的问题,需要开启邮箱的服务.

posted @ 2017-06-19 01:35  R-Bear  阅读(273)  评论(0编辑  收藏  举报