一、HTML格式怎么发送右键

1.准备HTML代码作为内容

2.把邮件的subtype设置为html

3.发送

4.举个例子:自己发给自己一个HTML格式的文件

from email.mime.text import MIMEText

​

main_content = """

        <!DOCTYPE html>

        <html lang = "en"

        <head>

            <meta charset = "UTF-8">

            <title>实例</title>

        </head>

        <body>

            <h1>这个是做测试用的html<h1>

        </body>

        </html>

        """

​

msg = MIMEText(main_content,"html","utf-8")

​

#构建发送者地址和登录信息

from_addr = "1215217867@qq.com"

from_pwd = ""

#构建邮件接受者的信息

to_addr = "1215217867@qq.com"

smtp_srv = "smtp.qq.com"

try:

    import smtplib

    srv = smtplib.SMTP_SSL(smtp_srv.encode(),465)

    srv.login(from_addr,from_pwd)

    srv.sendmail(from_addr,[to_addr],msg.as_string())

    srv.quit()

​

except Exception as a:

    print(a)

二、发送带附件的邮件

1.可以把邮件看作是一个文本邮件和一个附件的合体

2.一封邮件如果涉及多个部分,需要使用MIMEMultipart格式构建

3.添加一个MIMEText正文

4.添加一个 MIMEBase或者MEMEText作为附件

5.举个例子:


from email.mime.text import MIMEText#构建附件使用

from email.mime.multipart import MIMEBase,MIMEMultipart#构建基础邮件使用

​

mail_mul = MIMEMultipart()#构建一个邮件对象

mail_text = MIMEText("Hello,I am liudana","plain","utf-8")#构建邮件正文

mail_mul.attach(mail_text)#把构建好的邮件正文附加到邮件中

#构建附件,需要从本地读入附件

#打开一个本地文件

#以rb格式打开

with open("00.TestCasePython.py","rb") as  f:

    s = f.read()

    #设置附件的MIME和文件名

    m = MIMEText(s,"base64","utf-8")#类型是base64,这是邮件正文的格式,这里只需要记住就可以了

    m["Content-Type"] = "application/octet-stream"

    #需要注意

    #1.attachment后分号位英文状态

    #2.filename后面需要引号包裹,注意与外面引号错开

    m["Content-Disposition"] = "attachment;filename = '00.TestCasePython.py'"

    #添加到MIMEMultipart

    mail_mul.attach(m)

​

#构建发送者地址和登录信息

from_addr = "1215217867@qq.com"

from_pwd = "ysqmojzwkgfciccd"

#构建邮件接受者的信息

to_addr = "1215217867@qq.com"

smtp_srv = "smtp.qq.com"

try:

    import smtplib

    srv = smtplib.SMTP_SSL(smtp_srv.encode(),465)

    srv.login(from_addr,from_pwd)

    srv.sendmail(from_addr,[to_addr],mail_mul.as_string())

    srv.quit()

​

except Exception as a:

    print(a)

三、源码

D55_2_HTMLMailSend.py

D55_3_SendAttachmentMail.py

https://github.com/ruigege66/Python_learning/blob/master/D55_2_HTMLMailSend.py

https://github.com/ruigege66/Python_learning/blob/master/D55_3_SendAttachmentMail.py

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Python连载56-发送带有附件、正文为HTML的邮件的更多相关文章

  1. Android在发送带有附件的邮件

    准备好工作了-下载最新的版本号JMail https://java.net/projects/javamail/pages/Home#Download_JavaMail_1.5.2_Release h ...

  2. Java Mail 发送带有附件的邮件

    1.小编用的是163邮箱发送邮件,所以要先登录163邮箱开启POP3/SMTP/IMAP服务方法: 2.下载所需的java-mail 包 https://maven.java.net/content/ ...

  3. Python模块探秘 Smtplib发送带有各种附件的邮件

    这两天对Python的邮件模块比较感兴趣,于是就查了查资料.同时在实际的编码过程中也遇到了各种各样的问题.下面我就来分享一下我与smtplib的故事. 前提条件 我的上一篇博文里面讲解了,发送邮件必须 ...

  4. spring boot:发送带附件的邮件和html内容的邮件(以163.com邮箱为例/spring boot 2.3.2)

    一,网站哪些情况下需要发送电子邮件? 作为一个电商网站,以下情况需要发邮件通知用户: 注册成功的信息 用邮箱接收验证码 找回密码时发链接 发送推广邮件 下单成功后的订单通知 给商户的对账单邮件 说明: ...

  5. python接口自动化(三十)--html测试报告通过邮件发出去——中(详解)

    简介 上一篇,我们虽然已经将生成的最新的测试报告发出去了,但是MIMEText 只能发送正文,无法带附件,因此我还需要继续改造我们的代码,实现可以发送带有附件的邮件.发送带附件的需要导入另外一个模块 ...

  6. 带有附件及图片正文的JavaMail邮件发送

    1 package javamail; 2 3 import java.io.UnsupportedEncodingException; 4 import java.util.Properties; ...

  7. 利用Python+163邮箱授权码发送带附件的邮件

    背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个<利用Pyth ...

  8. Python发送带附件的邮件

    看别人的博客就不要在往别人的邮箱里发东西了行不行, 有点素质可以吗!!! 写出来分享还不知道珍惜!!!!! #-*-encoding:utf-8 -*- import os import smtpli ...

  9. 使用MailKit发送带有内嵌图片的邮件且图片不显示成附件

    使用MailKit发送带有内嵌图片的邮件且图片不显示成附件 参考文章:MailKit---发送邮件 注意 在邮件客户端中是否显示内嵌图片为附件依据不同邮件有所不同,暂经测试Outlook和qq不显示为 ...

随机推荐

  1. android java socket断线重连

    android java socket断线重连 thread = new Thread(new Runnable() { @Override public void run() { while (tr ...

  2. Day01-初识 Python

    1.CPU/内存/硬盘/操作系统 CPU :计算机的运算和处理中心,相当于人类的大脑. 内存 :暂时存储数据,临时加载数据应用程序. 硬盘 :长期存储数据. 操作系统:一个软件,连接计算机的硬件与所有 ...

  3. 解决Connection to Xxx@localhost failed.

    解决: Connection to jianshu@localhost failed. [08001] Could not create connection to database server. ...

  4. gulp+webpack+angular1的一点小经验(第一部分gulp与webpack的整合)

    时间匆匆如流水继上周熟悉了gulp的初步安装与环境配置以后,我的项目又进入了新的阶段! 这篇文章将把我这一周遇到的一些问题,以及解决的方式做一个小小的总结,不一定记的完整,但都是个人的一点经验,分享给 ...

  5. js中动画原理

    现如今,许多页面上均有一些动画效果.适当的动画效果可以在一定程度上提高页面的美观度,具有提示效果的动画可以增强页面的易用性. 实现页面动画的途径一般有两种. 一种是通过操作JavaScript间接操作 ...

  6. 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick

    [摘要] 官网博文翻译,nodejs中的定时器 示例代码托管在:http://www.github.com/dashnowords/blogs 原文地址:https://nodejs.org/en/d ...

  7. luogu P5058 [ZJOI2004]嗅探器

    题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心互相交换的所有信息,但是蓝军的网络相当的庞大 ...

  8. ASP.NET Core 选项模式源码学习Options IOptions(二)

    前言 上一篇文章介绍IOptions的注册,本章我们继续往下看 IOptions IOptions是一个接口里面只有一个Values属性,该接口通过OptionsManager实现 public in ...

  9. uglify-js 和uglify-es

    uglify-js 它不支持压缩 es6,参考github的issue It seems like uglify-js does not support es6? uglify-js在压缩代码时,遇到 ...

  10. Node.js 中 __dirname 和 ./ 的区别

    概要 __dirname 总是指向被执行 js 文件的绝对路径 在 /d1/d2/myscript.js 文件中写了 __dirname, 它的值就是 /d1/d2 . ./ 会返回你执行 node ...