当前位置:
首页 > temp > 简明python教程 >
-
Python连载56-发送带有附件、正文为HTML的邮件
一、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/
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数