Python3 notes

简介: Python3 notes

Python 发送带附件的邮件

发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。

实例

#!/usr/bin/python3

 

import smtplib

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

from email.header import Header

 

sender = 'from@runoob.com'

receivers = ['429240967@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

 

#创建一个带附件的实例

message = MIMEMultipart()

message['From'] = Header("菜鸟教程", 'utf-8')

message['To'] =  Header("测试", 'utf-8')

subject = 'Python SMTP 邮件测试'

message['Subject'] = Header(subject, 'utf-8')

 

#邮件正文内容

message.attach(MIMEText('这是菜鸟教程Python 邮件发送测试……', 'plain', 'utf-8'))

 

# 构造附件1,传送当前目录下的 test.txt 文件

att1 = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8')

att1["Content-Type"] = 'application/octet-stream'

# 这里的filename可以任意写,写什么名字,邮件中显示什么名字

att1["Content-Disposition"] = 'attachment; filename="test.txt"'

message.attach(att1)

 

# 构造附件2,传送当前目录下的 runoob.txt 文件

att2 = MIMEText(open('runoob.txt', 'rb').read(), 'base64', 'utf-8')

att2["Content-Type"] = 'application/octet-stream'

att2["Content-Disposition"] = 'attachment; filename="runoob.txt"'

message.attach(att2)

 

try:

   smtpObj = smtplib.SMTP('localhost')

   smtpObj.sendmail(sender, receivers, message.as_string())

   print ("邮件发送成功")

except smtplib.SMTPException:

   print ("Error: 无法发送邮件")

$ python3 test.py  

邮件发送成功

相关文章
|
6月前
|
SQL 数据库连接 Python
Python3 notes
Python3 notes
|
5月前
|
Java Go Windows
go语言实现加减法出题器(再也不用担心孩子学习了)
go语言实现加减法出题器(再也不用担心孩子学习了)
|
JSON Kubernetes 监控
k8s常见故障速查指南
k8s常见故障速查指南。
1705 1
|
canal 存储 Kubernetes
Kubernetes 之7大CNI 网络插件用法和对比
的通信,支持多种网络后端,如 VXLAN、UDP 和 Host-GW。 Calico:Calico 是一种基于 BGP 的网络插件,它使用路由表来路由容器之间的流量,支持多种网络拓扑结构,并提供了安全性和网络策略功能。 Canal:Canal 是一个组合了 Flannel 和 Calico 的网络插件,它使用 Flannel 来提供容器之间的通信,同时使用 Calico 来提供网络策略和安全性功能。 Weave Net:Weave Net 是一种轻量级的网络插件,它使用虚拟网络技术来为容器提供 IP 地址,并支持多种网络后端,如 VXLAN、UDP 和 TCP/IP,同时还提供了网络策略
5911 0
AcWing 804. n 的阶乘
AcWing 804. n 的阶乘
54 0
AcWing 804. n 的阶乘
|
SQL 关系型数据库 MySQL
开发指南—DAL语句—EXPLAIN
该语句用于解释SQL语句的执行计划,包括SELECT、DELETE、INSERT、REPLACE或UPDATE语句。
|
存储 前端开发
数据结构——队列
1、什么是队列 2、队列的基本结构 3、顺式队列的实现和基本操作 4、循环队列的实现和基本操作 5、链式队列的实现和基本操作
316 0
数据结构——队列
|
弹性计算 网络协议 Linux
|
Web App开发 数据库
小议创业初期的技术选择
在产品为王的互联网时代,技术的价值愈发凸显,今天我们就来聊一聊小型创业团队到底如何进行技术的选择
4004 0