zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    科技抗疫,少年可期,为这群有AI的天使开发者疯狂打call
    Multi-Architecture镜像制作指南已到,请查收!
    垃圾回收你懂,Java垃圾回收你懂吗?
    “体检医生”黑科技|让AI开发更精准,ModelArts更新模型诊断功能
    Rust太难?那是你没看到这套Rust语言学习万字指南!
    资深码农:拿下软件测试,只需掌握好这两种方法!
    自定义TBE算子入门,不妨从单算子开发开始
    华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”
    2020 年终总结 & 2021 年度计划
    评分组件 Rate 的别样解法
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144305.html
Copyright © 2011-2022 走看看