Python用20行代码实现完整邮件功能
作者:LexSaints 发布时间:2023-04-06 12:20:49
标签:Python,邮件
Python实现完整邮件
先上效果:
一、邮箱端设置
首先,要对邮件进行一下设置,在邮箱端获取一个授权码。
1、首先登录网页版126邮箱
2、打开 设置—POP3/SMTP/IMAP配置界面
3、新增一个授权码
二、python发送邮件
1、安装邮件模块
pip install py-emails
2、调用模块
引入邮箱模块,配置收件人、发件人、授权码等信息
#引入smtplib模块
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
#配置邮箱信息
sender = 'pacersby@126.com' #发件人的地址
password = 'XXXXXXXXXXXX' #此处是我们刚刚在邮箱中获取的授权码
receivers = ['wangsicong@126.com', '1029925144@qq.com'] #邮件接受方邮箱地址,可以配置多个,实现群发
3、设置邮件内容
#邮件内容设置
message = MIMEText('你好呀,王思聪~~~','plain','utf-8')
#邮件标题设置
message['Subject'] = '来自CSDN的问候'
#发件人信息
message['From'] = sender
#收件人信息
message['To'] = receivers[0]
#通过授权码,登录邮箱,并发送邮件
try:
server = smtplib.SMTP('smtp.126.com') #配置126邮箱的smtp服务器地址
server.login(sender,password)
server.sendmail(sender, receivers, message.as_string())
print('发送成功')
server.quit()
except smtplib.SMTPException as e:
print('error',e)
4、添加附件
另外,我们发送邮件时,经常需要添加各式各样的附件。python同样可以实现。
如下,我们可以通过代码添加图片、pdf、zip等等格式的附件。
#添加图片附件
imageFile = 'C:\\Users\\pacer\\Desktop\\img\\1.png'
imageApart = MIMEImage(open(imageFile, 'rb').read(), imageFile.split('.')[-1])
imageApart.add_header('Content-Disposition', 'attachment', filename=imageFile)
#添加pdf附件
pdfFile = 'C:\\Users\\pacer\\Desktop\\img\\1.pdf'
pdfApart = MIMEApplication(open(pdfFile, 'rb').read())
pdfApart.add_header('Content-Disposition', 'attachment', filename=pdfFile)
#添加压缩文件附件
zipFile = 'C:\\Users\\pacer\\Desktop\\img\\1.zip'
zipApart = MIMEApplication(open(zipFile, 'rb').read())
zipApart.add_header('Content-Disposition', 'attachment', filename=zipFile)
三、python读取邮件
通过我们设置的授权码,登录邮箱账号,获取该账号收到的邮件内容。
首先安装zmail模块
pip install zmail
读取邮件
server = zmail.server('pacersby@126.com','授权码')
mail = server.get_latest()
zmail.show(mail)
获取邮件效果如下:
-------------------------
Subject 来自lex的python自动发送邮件
Id 4
From
pacersby@126.com
To None
Date 2021-07-15 10:18:39+08:00
Content_text ['来自lex的python自动发送邮件']
Content_html []
Attachments
1.Name:C:\\Users\\lex\\Desktop\\img\\1.jpg Size:205133
2.Name:C:\\Users\\lex\\Desktop\\img\\1.pdf Size:434938
3.Name:C:\\Users\\lex\\Desktop\\img\\1.zip Size:1201666
来源:https://blog.csdn.net/weixin_42350212/article/details/118751583
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 1、pyecharts绘制饼图(显示百分比)# 导入模块from pyecharts import options as optsfrom
- close方法可以释放一个连接的资源,但是不是立即释放,如果想立即释放,那么在close之前使用shutdown方法shut_rd() --
- 在用pyinstaller打包后不想要后面的终端命令框,但是打包时加了-w或者--noconsole命令后会导致cmd程序不能运行从而出错。
- 一). ubuntu下mysql安装布局:/usr/bin  
- class ascii{function decode($str){ preg_match_all( &
- Python中的列表是简直可说是有容乃大,虽然看似类似C中的数组,但是Python列表可以接受任意的对象元素,比如,字符串,数字,布尔值,甚
- 在IE中,在使用checkbox或radio时,你会发现有时不能通过CheckBoxObject.checked = true或CheckB
- 摘要RepVgg通过结构重参数化让VGG再次伟大。 所谓“VGG式”指的是:没有任何分支结构。即通常
- 下面是我已经证实可用的自动备份的方法. 1、打开企业管理器->管理->sql server代理 2、新建一个作业,作业名称随便取
- Python编程中raise可以实现报出错误的功能,而报错的条件可以由程序员自己去定制。在面向对象编程中,可以先预留一个方法接口不实现,在其
- lambda表达式python中形如:lambda parameters: expression称为lambda表达式,用于创建匿名函数,该
- 新建一个项目 app02在 app02/ 下创建 urls.py:from django.conf.urls import urlfrom
- 使用ASP实现网站的目录树数据库结构(共使用了两个表)1。tblCategory字段名 类型 Root&
- 一、背景协助产品部门提取10000份产品log信息中的SN号、IMEI号、ICCID号到Excel表格中。1.l原始的og内容:2.提取后的
- 导入模块import numpy as npimport pandas as pd1.读取测试数据data=pd.read_csv(r
- 目录GitHub 消息的问题解决方案代码实现0.环境准备1、模拟登录github2.模拟进入Inbox3.检查僵尸项目4.取消关注僵尸项目5
- 如下所示:>> type(np.newaxis)NoneType>> np.newaxis == NoneTruen
- MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL
- @property有什么用呢?表面看来,就是将一个方法用属性的方式来访问.上代码,代码最清晰了.class Circle(object):
- 临时表产生:A: SELECT INTO和B:CREATE TABLE + INSERT INTO1. A 要比B 快很多。但是A会锁定te