Python——email模块

【python应用】—利用python构造邮件、解析邮件、发送邮件、接收邮件(email、smtplib、imaplib模块) 利用python构造邮件、解析邮件、发送邮件、接收邮件(email、smtplib、imaplib模块) 阅读详情

一、发邮件的流程

1、使用电子邮件软件MUA:mail user agent --邮件用户代理,填写完成点击发送
2、点击发送的时候电子邮件软件发出去,到MTA:mail transfer agent–邮件传输代理,即email服务提供商,如网易等
3、MTA–邮箱传输代理会把邮箱投递到邮件的最终目的地MDA:mail delivery agent—邮箱投递服务
4、email到达MDA后就会放在某个服务器上,存在数据库里,收件人必须通过MUA从MDA中把邮箱放到自己电脑上

流程:发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA<-MUA<-收件人

二、smtplib的用法

2.1 使用步骤:

  • 创建SMTP的操作对象并连接smtp目标服务器,例如163、QQ等
  • 根据自己的账号登录目标服务器(自己的邮箱地址和邮箱授权码)
  • 调用对象中的方法,发送邮件到目标地址

2.2 常用SMTP地址

  • 浪邮箱:smtp.sina.com,搜狐邮箱:smtp.sohu.com,qq邮箱:smtp.qq.com
  • 网易126邮箱的相关服务器信息
邮件服务器 | 服务器地址 | 端口
POP3服务器 | pop.126.com | 110
SMTP服务器 | smtp.126.com | 25
IMAP服务器 | imap.126.com | 143

2.3 MIME模块

from email.mime.text import MIMEText #构造一个MIMEText,表示文本邮件对象
#MIMEText对象中有三个需要我们设置的参数,一个是正文内容,一个是正文内容的类型,例如:”text/plain”和”text/html”,一个是正文内容的编码。
from email.mime.image import MIMEImage #构造一个MIMEImage,表示附件的图片邮件对象
from email.mime.multipart import MIMEMultipart #构造一个MIMEMultipart,表示整个邮件
"""
multipart类型主要有三种子类型:mixed、alternative、related
1、(1) MIMEMultipart类型基本格式
● MIMEMultipart(‘mixed’)类型
如果一封邮件中含有附件,那邮件的中必须定义multipart/mixed类型,邮件通过multipart/mixed类型中定义的boundary标识将附件内容同邮件其它内容分成不同的段。基本格式如下:
msg=MIMEMultipart(‘mixed’)

● MIMEMultipart(‘alternative’)类型
MIME邮件可以传送超文本内容,但出于兼容性的考虑,一般在发送超文本格式内容的同时会同时发送一个
纯文本内容的副本,如果邮件中同时存在纯文本和超文本内容,则邮件需要在Content-Type域中
定义multipart/alternative类型,邮件通过其boundary中的分段标识将纯文本、超文本和邮件的
其它内容分成不同的段。基本格式如下:
msg=MIMEMultipart(‘alternative’)

● MIMEMultipart(‘related’)类型
MIME邮件中除了可以携带各种附件外,还可以将其它内容以内嵌资源的方式存储在邮件中。
比如我们在发送html格式的邮件内容时,可能使用图像作为 html的背景,html文本会被存储在alternative段中,而作为背景的图像则会存储在multipart/related类型定义的段中。
基本格式如下:
msg=MIMEMultipart(‘related’)
"""

"""
构造文本内容,同时支持plain、html格式
msg = MIMEMultipart('alternative')
msg.attach(MIMEText('hello', 'plain', 'utf-8'))
msg.attach(MIMEText('<html><body><h1>Hello</h1></body></html>', 'html', 'utf-8'))
"""

三、实操

'''
File Name:sendEmail-test.py
Creat File Time:2022/8/20 15:18
File Create By Author:@Wheat
'''
import smtplib
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication #发送附件
#配置邮箱及密码
form_mail = ''#发送人邮箱
form_mail_password = ''#需要从邮箱的设置-账号-开启POP3-SMPT服务来获取授权码
to_email = ''#接收人邮箱

#设置总的邮件对象,对象的类型为mixed
msg = MIMEMultipart('mixed')

#邮件的发送人及收件人信息
msg['From'] = form_mail
msg['to'] = to_email

#邮件的主题
msg['Subject'] = 'Test use Pyhton to send email '

#构造文本内容
text_info = 'hello world ,nice world'
text_sub = MIMEText(text_info,'plain','utf-8') #可分为plain(纯文本)格式和html格式
msg.attach(text_sub)

#构造超文本
url = "https://demom.liangyihui.net/"
html_info = """<p><a herf="%s">点击我~~打开新世界</a></p>""" % url
html_sub = MIMEText(html_info,'html',"utf-8")
#需加如下代码才可使thml_info文本的内容正常显示,会把超文本的内容当做文本显示
html_sub["Content_Disposition"] = 'attachment; filename="doctor.html"'
#把构造的内容写入邮件体
msg.attach(html_sub)

#构造图片
image_file = open(r'E:\Auto Program\Doctor_autotest\image.png','rb').read()
image = MIMEImage(image_file)
image.add_header('Content-ID','<image1>')
#如不加以下代码,会导致接收方方面显示乱码的bin文件,下载后也不可打开,这个地方可以对文件重命名
image["Content_Disposition"] = 'attachment; filename="image.png"'
msg.attach(image)

#构造附件
attachment_file = open(r'E:\Auto Program\Doctor_autotest\testExample.xmind','rb').read()
attachment = MIMEApplication(attachment_file)
attachment.add_header('Content-Disposition', 'attachment')
attachment["Content-Disposition"]='attachment; filename="testExample.xmind"'
msg.attach(attachment)

try:
	sever = smtplib.SMTP('smtp.qq.com')
	sever.docmd('wheat',form_mail)
	sever.starttls()
	sever.login(form_mail,form_mail_password)

	sever.sendmail(form_mail,to_email,msg.as_string())
	sever.quit()
	print("耶~~~发送成功")
except Exception as e:
	print("未发送成功")
	print(e)
使用python的smtp和email模块发送邮件 对于发送附件的邮件,附件对象filemime要设置2个头部,Content-Type, Content-Disposition, 前者是内容类型,后者是在邮件附件里显示的名字,通过filename去定义。总结:用python发送邮件,支持多种不同类型的邮件,有纯文本,有带html 或者压缩文件,当然其他的pdf, xlsx, doc文件作为附件也能发。发送邮件的整个过程是:连接邮箱服务器-->登录邮箱-->准备邮件数据-->添加邮件数据到邮件对象-->发送邮件。运行发送邮件代码后,邮箱收到了有附件的邮件。 阅读详情

相关推荐

python的email库如何使用

在上面的代码中,首先使用IMAP4_SSL连接到邮件服务器,然后使用login方法登录。接下来,使用select方法选择收件箱,然后使用search方法检索所有邮件。接下来,遍历所有邮件,使用fetch方法获取邮件的原始内容,然后使用message_from_bytes方法将其转换为email.message对象,最后,打印邮件的发件人和主题。Python中的email库用于处理复杂的电子邮件处理任务。它可以读取、编写和发送电子邮件。使用Python的email库收取邮件需要使用IMAP协议。

zhangzhechun的专栏 1800

python发送各类QQ邮件 —— smtplib与email模块

SMTP是发送邮件的协议,Python 2.3版本开始内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。本文以QQ邮件为例,用python发送各类邮件。 Python对SMTP支持主要使用smtplib和email两个模块,email模块负责构造邮件,smtplib模块负责发送邮件。 一、 传输简单邮件 smtplib模块 1. SMTP类定义 smtplib.SMTP([host[,port[,local_hostname[,timeout]]]]) 作为SMTP的构

Hehuyi_In的博客 1万+

python email 模块

参考简书,廖雪峰python import smtplib import os from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import traceback import time def send(self,content=None): ''''...

sowhat 5761

Python常用模块8-Python的email模块简介

文章目录一.email - 电子邮件与 MIME 处理包二.发送邮件简要概述2.1 python发邮件所需要的基础包2.2 smtplib的用法2.3 email模块的详细理解和使用十.email案例参考: 一.email - 电子邮件与 MIME 处理包 email 包是一个用于管理电子邮件消息的库。 它 并非 被设计为执行向 SMTP (RFC 2821), NNTP 或其他服务器发送电子邮件消息的操作;这些是 smtplib 和 nntplib 等模块的功能。 email 包试图尽可能遵循 RFC,支

只是甲的博客 1万+

vasp-自旋轨道耦合(SOC)计算步骤

在VASP中执行自旋轨道耦合(SOC)计算,具体的计算步骤如下: 结构优化获取CONTCAR文件 自洽计算(collinear normal VASP calculations)获取IBZKPT,CHGCAR和WAVECAR文件。 SCF+SOC计算,在此步骤中,将步骤2中的IBZKPT复制为KPOINTS,以便两个步骤具有相同的k网格,因此可以读取步骤2中的CHGCAR和WAVECAR文件。 能带结构计算,在此步骤中,将KPOINTS改为高对称点,读取步骤3中的CHGCAR和WAVECAR文件。

懒散的鱼与消失的猫 3万+

中职网络安全2021年国赛Wireshark流量分析题目解析

中职网络安全Wireshark流量分析题目解析

FRANXX_02的博客 6442

python email模块详解_python email模块

python email模块email模块电子邮件包是一个用于管理电子邮件消息的库。它的特殊设计不用于向SMTP (RFC 2821)、NNTP或其他服务器发送任何电子邮件消息;这些是模块的函数,如smtplib和nntplib。电子邮件包尝试尽可能符合RFC,支持RFC 5233和RFC 6532,以及与mime相关的RFC 2045、RFC 2046、RFC 2047、RFC 2183和RFC...

weixin_39648432的博客 5248

Windows server 2012R2安装Oracle11g

打开 开始——所有程序——Oracle-OraDb11g_home1——配置和移植工具——Database Configuration Assistant。打开 开始——所有程序——Oracle-OraDb11g_home1——配置和移植工具——Net Configuration Assistant。首先打开Oracle的安装位置找到下面的位置找到tnsnames.ora文件右键编辑。打开Oracle的安装位置找到下面的位置找到tnsnames.ora文件右键编辑。选择仅安装数据库软件。

qq_74770105的博客 3596

python的email模块_python email 模块

import smtplibimport osfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport tracebackimport timedef send(self,content=None):'''''发送邮件'''server = Noneindex = 1 #邮件重...

weixin_39526415的博客 894

Kettle Web版部署指南

看到以上的日志则表示启动成功。

2401_89221867的博客 1718

自抗扰控制(ADRC)理论与工程实践:8.1 自适应ADRC与参数在线整定

自适应自抗扰控制(AADRC)针对传统固定参数ADRC在动态变化系统中的局限性,提出通过在线调整关键参数(如观测器带宽ω₀、控制器带宽ω_c)以适应对象动态变化。主要方法包括基于稳定性理论的自适应律设计和基于性能指标的优化调节,前者保证闭环稳定但设计复杂,后者通过梯度搜索或模糊规则实现性能优化但缺乏严格稳定性证明。当前挑战在于非线性时变系统的稳定性分析、参数变化速率限制及工程实现的计算负担。AADRC拓展了ADRC在变参数系统(如无人机、软体机器人)中的应用,是迈向自主智能控制的关键技术。

技术工作者 214

python email模块

python email模块 官方文档 email模块 电子邮件包是一个用于管理电子邮件消息的库。它的特殊设计不用于向SMTP (RFC 2821)、NNTP或其他服务器发送任何电子邮件消息;这些是模块的函数,如smtplib和nntplib。电子邮件包尝试尽可能符合RFC,支持RFC 5233和RFC 6532,以及与mime相关的RFC 2045、RFC 2046、RFC 2...

weixin_34314962的博客 1324

Milvus 向量数据库部署方案全景指南:从单机开发到生产级高可用集群

本文系统介绍了Milvus向量数据库的四大部署方案:嵌入式开发利器Milvus Lite、单机简易部署Standalone模式、生产级高可用Cluster模式以及全托管SaaS服务Zilliz Cloud。针对不同应用场景(开发测试、小型应用、大规模生产环境),详细分析了各模式的适用条件、资源配置要求和部署步骤,并提供了关键配置示例。文章强调正确选择部署方案对系统性能至关重要,帮助开发者根据向量规模、QPS和高可用需求,选择最优部署方式,实现资源优化与稳定运行。

reset2021的博客 385

python的email模块_为什么我必须用python中的email模块“从模块导入”?

对不起,如果问题不准确,我很难正确地表达这个问题。在我尝试使用电子邮件模块来创建一个简单的纯文本电子邮件,并在满足某些条件时发送它。我遇到了各种不正常的行为,我想了解一下。我从官方示例(https://docs.python.org/3.4/library/email-examples.html)中提取了一个简单的测试,它运行得很好。当我开始尝试在我的项目中实现这一点时,我开始得到各种各样的"'m...

weixin_42297846的博客 1628

系统架构设计师备考攻略

计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。 软考没有学历、专业、年龄、相关工作经验要求,你可以根据自身选择合适的去报名(也就是说你直接直接报高级),但是一次考试只能报一种。 计算机软件资格考试纳入全国专业技术人员职业资格证书制度的统一规划,实行统一大纲、统一试题、统一标准、统一证书的考试办法,每年举行两次。通过考试获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位聘任相应专业技术职务(助理工程师、工程师、高级工程师)。

帅次的博客 7163

Vue3 - H5实现省市区三四级联动组件,选择地址自定义省市区三级联动插件,弹框式多级联动选择器区域选择,vue3实现省市区三级联动地址选择组件(支持接口数据懒加载,样式精美漂亮,附带详细示例源码)

vue3实现省市区三级联动地址选择组件(附address文件),vue3实现省市区三级联动, 实现省、市、县地区三级联动功能,vue3省市区选择器,VUE3 h5如何实现省市区街道的四级联动选择,vue实现省市区选择联动,vue3城市三级联动(自定义组件)_VUE三级联动,插件省市区联动,vue如何实现省市区选择器,vue3怎样实现省市区地址三级联动,vue四级联动,vue3级联选择器,vue3实现选择省市区镇(街道)四级级联选择,包含三级级联选择,省市区街道三级四级联动选择器,VUE3自定义多列选择器省市

🏆 前端领域优质创作者 3068

python安装email模块_Python发邮件要装什么模块

在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理。SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,python实现发邮件也是基于此基础上进行封装的。1.python发邮件所需要的基础包python发送邮件需要用到python自带的两个模块,smtpl...

weixin_39903477的博客 2976

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python 发送邮件email ,使用email模块和smtplib模块

使用email模块和smtplib模块,内容比较固定,配好了即可实现,代码如下: 一、普通邮件发送 import smtplib from email.mime.text import MIMEText email_host = 'smtp.163.com' #邮箱地址 email_user = 'XXX@163.com' # 发送者账号 email_pwd = 'XXX' # 发...

走在搬砖的路上! 1001

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python安装email模块_Python3下email 安装报错 No module named 'cStringIO'

python 自动发送邮件需要用到 email模块,但是python3 在安装email包的时候出现了难以解决的问题。Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/Collecting emailUsing cached https://pypi.tuna.tsinghua.edu.cn/packages/71/e7/81...

weixin_42515377的博客 6441

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python的email模块_python email 模块 运维用处

主要用于检测服务器状况并发送确认信息给自己import smtplibfrom email.mime.text import MIMETextsender = 'xxxx@qq.com' #发送人邮箱passwd = 'lkugmgywydhfff' #发送人邮箱授权码receivers = 'xxxx@qq.com' #收件人邮箱subject = 'python发邮件测试' #主题cont...

weixin_39517202的博客 149

python安装email模块_Python使用SMTP模块、email模块发送邮件

一、smtplib模块:主要通过SMTP类与邮件系统进行交互。使用方法如下:1.实例化一个SMTP对象:s = smtplib.SMTP(邮件服务地址,端口号)s = smtplib.SMTP_SSL(邮件服务地址,端口号)2.登陆邮件,权限验证:s.login(用户名,密码)3.发送邮件:s.sendmail(发件人邮箱,收件人邮箱,发送内容)4.断开连接:s.close()二、email模块:...

weixin_39624705的博客 1177

python email模块的使用实例

python的email模块使用实例

freesigefei的博客 1万+

python 没有email模块_python 中模块smtplibe 和 email用法攻略

,点击上方“拾光撷影”关注,带你去看流行语!importsmtplibfromemail.mime.textimportMIMETextfromemail.utilsimportformataddrstatus={}# 状态码pipeline_item={"item":0,# 成功item项"item_err...

weixin_32393875的博客 581

python发邮件详解,smtplib和email模块详解

在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理。SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,python实现发邮件也是基于此基础上进行封装的。 1.python发邮件所需要的基础包 python发送邮件需要用到python自带的两个模块,s...

chinesepython的博客 8万+

python email模块方法_python中使用smtplib和email模块发送邮件实例

SMTP模块这么多已定义的类中,我们最常用的的还是smtplib.SMTP类,就具体看看该类的用法:smtp实例封装一个smtp连接,它支持所有的SMTP和ESMTP操作指令,如果host和port参数被定义,则smtp会在初始化期间自动调用connect()方法,如果connect()方法失败,则会触发SMTPConnectError异常,timeout参数设置了超时时间。在一般的调用过程中,应...

weixin_36488760的博客 912
上一篇: Python——time模块
下一篇: python——“......%s“%参数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值