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('发送成功........')

最新文章

  1. TODO:小程序开发环境搭建
  2. 点燃圣火! Ember.js 的初学者指南
  3. spring mvc form表单提交乱码
  4. Java:装饰设计模式
  5. Java文件下载的几种方式
  6. HDU 5929 Basic Data Structure 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
  7. linux 内存管理大图
  8. Eclipse Juno 配置反编译插件
  9. 基于Activiti的流程应用开发平台JSAAS-WF V5.3
  10. GeoServer+PostgreSQL+PostGIS+pgRouting实现最短路径查询
  11. JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)
  12. html select 标签设置默认选中
  13. JavaScript 基础结构
  14. oracle之触发器
  15. css 实现背景图片不跟着滚动条滚动而滚动
  16. es 测试代码
  17. 恶意代码分析实战-PE资源提取
  18. python第五课——流程控制语句
  19. memcached迁移方案——记一次memcached session服务的迁移
  20. Spring Boot简化了基于Spring的应用开发

热门文章

  1. [从源码学设计]蚂蚁金服SOFARegistry之服务上线
  2. 申请免费域名并配置DNS解析及CDN加速
  3. 新蜂商城的mybatis plus版本,添加了秒杀专区、优惠卷领取以及后台搜索功能
  4. node解决跨域和服务器代理详解代码
  5. 【剑指Offer】链表的基本操作之创建、插入、删除
  6. redis 5.0.5 安装
  7. 【ORA】ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
  8. ctfhub技能树—信息泄露—svn泄露
  9. Java编译期注解处理器详细使用方法
  10. [分享] 最流行的 10 个 JavaScript 库