• python发送包含html、图片、附件和链接的邮件


    1.smtplib模块的使用

    smtplib库用来发送邮件。需要用到的函数如下:

    连接到SMTP服务器,参数为SMTP主机和端口:
    SMTP.connect([host[,port]])
    登录SMTP服务器,参数为邮箱用户名和密码:
    SMTP.login(user,password)
    发送邮件。msg表示邮件内容:
    SMTP.sendmail(from_addr, to_addrs, msg)
    断开连接:
    SMTP.quit()

    2.邮件格式MIME介绍

    最常见的MIME首部是以Content-Type开头的:

     1) Content-Type: multipart/mixed
    它表明这封Email邮件中包含各种格式的MIME实体但没有具体给出每个实体的类型。

    2) Content-Type: multipart/alternative
    如果同一封Email邮件既以文本格式又以HTML格式发送,那么要使用Content-Type: multipart/alternative。这两种邮件格式实际上是显示同样的内容但是具有不同的编码。

    3) Content-Type: multipart/related
    用于在同一封邮件中发送HTML文本和图像或者是其他类似类型。

    邮件主体的编码:

    主要是包括quoted-printable与base64两种类型的编码。Base64和Quoted-Printable都属于MIME(多用途部分、多媒体电子邮件和 WWW 超文本)的一种编码标准,用于传送诸如图形、声音和传真等非文本数据)。

    #!/usr/bin/python
    #coding:utf-8
    import smtplib
    from email.Header import Header
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.mime.image import MIMEImage

    def sendMail(sender,receiver,subject):
        smtpserver = 'smtp.126.com'
        username = 'zhaohaihua1213'
        password = '123456'

        msg = MIMEMultipart('alternative')
        msg['Subject'] = Header(subject,'utf-8')

       

    #html格式构造

         html =  """
        <html>
          <head>测试一下</head>
          <body>
            <p>兄弟们!<br>
               你们好啊<br>
               点击进入 <a href=" http://www.mykuaiji.com ">会计家园</a>
               <br><img src="cid:image1"></br>
            </p>
          </body>
        </html>
        """
        htm = MIMEText(html,'html','utf-8')
        msg.attach(htm)

    #构造图片

        fp = open('meinv.jpg','rb')
        msgImage = MIMEImage(fp.read())
        fp.close()

        msgImage.add_header('Content-ID','<image1>')
        msg.attach(msgImage)

    #构造附件

        att = MIMEText(open('Pictures.rar','rb').read(),'base64','utf-8')
        att["Content-Type"] = 'application/octet-stream'
        att["Content-Disposition"] = 'attatchment;filename="Pictures.rar"'
        msg.attach(att)

        smtp = smtplib.SMTP()
        smtp.connect('smtp.126.com')
        smtp.login(username,password)
        smtp.sendmail(sender,receiver,msg.as_string())
        smtp.quit()

    sender = 'zhaohaihua1213@126.com'
    receiver = '903397616@qq.com'
    subject = '图片附件html发送邮件测试'
    sendMail(sender,receiver,subject)

  • 相关阅读:
    python --函数
    Python基本数据类型
    初识python
    【 D3.js 高级系列 — 8.0 】 标线
    【 D3.js 高级系列 — 7.0 】 标注地点
    Azure SQL 数据库最新版本现已提供预览版
    Azure SQL 数据库新服务级别现已正式发布
    聚焦 SQL 数据库活动异地复制
    Azure SQL 数据库:服务级别与性能问答
    Azure SQL 数据库:新服务级别问答
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144305.html
Copyright © 2020-2023  润新知