python模块----yagmail模块、smtplib模块 (电子邮件)
2024-08-29 05:48:56
yagmail模块
python标准库发送电子邮件的模块比较复杂,so,许多开源的库提供了更加易用的接口来发送电子邮件,其中yagmail是使用比较广泛的开源项目,yagmail底层依然使用smtplib和email模块,但是提供了更好的接口,并具有更好的易读性。
第一步:安装yagmail模块
pip install yagmail
第二步:发邮件
#导入yagmail模块
import yagmail
#1.实例化出来一个yagmail对象
yag = yagmail.SMTP(user='xxxx@163.com',password='xxxx',host='smtp.163.com')
##(可选)编写内容(其实contents就是一个变量)
contents='hello world!!!'
#2.发送邮件操作
yag.send(to='接收端@163.com',subject=None,contents=contents)
##3.断开连接
yag.close()
拓展1:发送多个用户
yag.send(to=['xx1.@163.com','xx2.@162.com'],subject=subject,contents)
拓展2:发送附件
contents=['邮件内容','附件路径']
smtplib模块
python发送邮件(不带附件)
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = 'xxxx@163.com'
receiver = 'xxxxxx@126.com'
subject = '报警'
username = 'xxxx@163.com'
password = 'xxxx'
msg = MIMEText(strs, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = 'Tim<xxxx@163.com>'
msg['To'] = "xxxxxx@126.com"
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
python发送邮件(带附件)
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
USER = 'xxxx@163.com'
PASSWORD = 'xxxxxx'
# 如名字所示: Multipart就是多个部分
msg = MIMEMultipart()
HOST = 'smtp.163.com'
msg['subject'] = 'test email from python'
msg['to'] = 'xxxx@126.com'
msg['from'] = 'xxxxxx@163.com'
text = MIMEText('我是纯文本')
msg.attach(text)
#添加附件1
xlsxpart = MIMEApplication(open('test1.xlsx', 'rb').read())
xlsxpart.add_header('Content-Disposition', 'attachment', filename='test1.xlsx')
msg.attach(xlsxpart)
#添加附件2
xlsxpart2 = MIMEApplication(open('test2.xlsx', 'rb').read())
xlsxpart2.add_header('Content-Disposition', 'attachment', filename='test2.xlsx')
msg.attach(xlsxpart2)
#开始发送邮件
client = smtplib.SMTP()
client.connect(HOST)
client.login(USER, PASSWORD)
client.sendmail('xxxxx@163.com', ['xxxx@126.com'], msg.as_string())
client.quit()
print('发送成功........')
最新文章
- TODO:小程序开发环境搭建
- 点燃圣火! Ember.js 的初学者指南
- spring mvc form表单提交乱码
- Java:装饰设计模式
- Java文件下载的几种方式
- HDU 5929 Basic Data Structure 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
- linux 内存管理大图
- Eclipse Juno 配置反编译插件
- 基于Activiti的流程应用开发平台JSAAS-WF V5.3
- GeoServer+PostgreSQL+PostGIS+pgRouting实现最短路径查询
- JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)
- html select 标签设置默认选中
- JavaScript 基础结构
- oracle之触发器
- css 实现背景图片不跟着滚动条滚动而滚动
- es 测试代码
- 恶意代码分析实战-PE资源提取
- python第五课——流程控制语句
- memcached迁移方案——记一次memcached session服务的迁移
- Spring Boot简化了基于Spring的应用开发
热门文章
- [从源码学设计]蚂蚁金服SOFARegistry之服务上线
- 申请免费域名并配置DNS解析及CDN加速
- 新蜂商城的mybatis plus版本,添加了秒杀专区、优惠卷领取以及后台搜索功能
- node解决跨域和服务器代理详解代码
- 【剑指Offer】链表的基本操作之创建、插入、删除
- redis 5.0.5 安装
- 【ORA】ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
- ctfhub技能树—信息泄露—svn泄露
- Java编译期注解处理器详细使用方法
- [分享] 最流行的 10 个 JavaScript 库