美文网首页软件测试-各种技能集合Python
Python-SMTP发送邮件(HTML、图片、附件)

Python-SMTP发送邮件(HTML、图片、附件)

作者: 小喜_ww | 来源:发表于2018-06-08 14:02 被阅读51次

    前言:

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。


    一、Python发送HTML邮件

    # -*- coding: utf-8 -*-
    # @Time    : 2018/6/6 上午11:27
    # @Author  : Wang
    # @File    : test_mail_html.py
    
    import smtplib
    from email.header import Header
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    
    def sendMail():
        # 定义相关数据,请更换自己的真实数据
        smtpserver = 'smtp.163.com'
        sender = 'test1@163.com'
        #receiver可设置多个,使用“,”分隔
        receiver = 'wang@mobile.cn,zhang@mobile.cn,lily@mobile.cn'
        username = 'test1@163.com'
        password = '2018'
    
        msg = MIMEMultipart()
        boby = """
        <h3>Hi,all</h3>
        <p>附件为本次FM_自动化测试报告。</p>
        <p>请解压zip,并使用Firefox打开index.html查看本次自动化测试报告结果。</p>
        """
        mail_body = MIMEText(boby, _subtype='html', _charset='utf-8')
        msg['Subject'] = Header("Android_自动化测试报告", 'utf-8')
        msg['From'] = sender
        receivers = receiver
        toclause = receivers.split(',')
        msg['To'] = ",".join(toclause)
        print(msg['To'])
        msg.attach(mail_body)
        # 登陆并发送邮件
        try:
            smtp = smtplib.SMTP()
            ##打开调试模式
            # smtp.set_debuglevel(1)
            smtp.connect(smtpserver)
            smtp.login(username, password)
            smtp.sendmail(sender, toclause, msg.as_string())
        except:
            print("邮件发送失败!!")
        else:
            print("邮件发送成功")
        finally:
            smtp.quit()
    

    二、Python发送邮件带附件

    #添加report附件
    att = MIMEText(open("/report/html.zip", "rb").read(), "base64", "utf-8")
    att["Content-Type"] = "application/octet-stream"
    times = time.strftime("%m_%d_%H_%M", time.localtime(time.time()))
    filename_report = 'FM_Android_Report'+'_'+times+'.zip'
    att["Content-Disposition"] = 'attachment; filename= %s ' %filename_report
    msg.attach(att)
    

    三、Python发送邮件正文带图片

    msg = MIMEMultipart()
    
    boby = """
        <h3>Hi,all</h3>
        <p>附件为本次FM_自动化测试报告。</p>
        <p>请解压zip,并使用Firefox打开index.html查看本次自动化测试报告结果。</p>
        <p>
        <br><img src="cid:image1"></br> 
        </p>
        <p>
    """
      
    msg.attach(mail_body)
    fp = open("/image/1.png", 'rb')
    images = MIMEImage(fp.read())
    fp.close()
    images.add_header('Content-ID', '<image1>')
    msg.attach(images)
    

    以上~~对你有帮助的话,点赞吧~👍

    相关文章

      网友评论

      本文标题:Python-SMTP发送邮件(HTML、图片、附件)

      本文链接:https://www.haomeiwen.com/subject/wlnnsftx.html