python自动发邮件库yagmail的示例代码


Posted in Python onFebruary 23, 2018

之前使用的python的smtplib、email模块发模块的一步步骤是:

一、先导入smtplib模块  导入MIMEText库用来做纯文本的邮件模板
二、发邮件几个相关的参数,每个邮箱的发件服务器不一样,以126为例子百度搜索服务器是  smtp.126.com
三、写邮件主题和正文,这里的正文是HTML格式的
四、最后调用SMTP发件服务

一般发邮件方法

我以前在通过Python实现自动化邮件功能的时候是这样的:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 发送邮箱服务器
smtpserver = 'smtp.sina.com'
# 发送邮箱用户/密码
user = 'username@sina.com'
password = '123456'
# 发送邮箱
sender = 'username@sina.com'
# 接收邮箱
receiver = 'receive@126.com'
# 发送邮件主题
subject = 'Python email test'

# 编写HTML类型的邮件正文
msg = MIMEText('<html><h1>你好!</h1></html>','html','utf-8')
msg['Subject'] = Header(subject, 'utf-8')

# 连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(user, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()

其实,这段代码也并不复杂,只要你理解使用过邮箱发送邮件,那么以下问题是你必须要考虑的:

  1. 你登录的邮箱帐号/密码
  2. 对方的邮箱帐号
  3. 邮件内容(标题,正文,附件)
  4. 邮箱服务器(SMTP.xxx.com/pop3.xxx.com)

yagmail 实现发邮件

yagmail 可以更简单的来实现自动发邮件功能。

github项目地址: https://github.com/kootenpv/yagmail

安装

pip install yagmail

简单例子

import yagmail
#链接邮箱服务器
yag = yagmail.SMTP( user="user@126.com", password="1234", host='smtp.126.com')

# 邮箱正文
contents = ['This is the body, and here is just text http://somedomain/image.png',
      'You can find an audio file attached.', '/local/path/song.mp3']

# 发送邮件
yag.send('taaa@126.com', 'subject', contents)

总共四行代码搞定,是不是比上面的例子简单太多了。

给多个用户发送邮件

# 发送邮件
yag.send(['aa@126.com','bb@qq.com','cc@gmail.com'], 'subject', contents)

只需要将接收邮箱 变成一个list即可。

发送带附件的邮件

# 发送邮件
yag.send('aaaa@126.com', '发送附件', contents, ["d://log.txt","d://baidu_img.jpg"])

只需要添加要发送的附件列表即可。

python自动发邮件库yagmail的示例代码

我都快感动哭了,到哪儿去找这么良心库去?简单的有点不像编程语言!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 Python
Python装饰器的函数式编程详解
Feb 27 Python
python利用datetime模块计算时间差
Aug 04 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
python实现Flappy Bird源码
Dec 24 Python
深入学习python多线程与GIL
Aug 26 Python
解决Python logging模块无法正常输出日志的问题
Feb 21 Python
python读取当前目录下的CSV文件数据
Mar 11 Python
Django ORM 查询表中某列字段值的方法
Apr 30 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
Python KMeans聚类问题分析
Feb 23 #Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 #Python
python kmeans聚类简单介绍和实现代码
Feb 23 #Python
python MysqlDb模块安装及其使用详解
Feb 23 #Python
Python实现k-means算法
Feb 23 #Python
python语言中with as的用法使用详解
Feb 23 #Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 #Python
You might like
深入array multisort排序原理的详解
2013/06/18 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
Pyqt5自适应布局实例
2019/12/13 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
单位个人查摆问题及整改措施
2014/10/28 职场文书
总经理岗位职责
2015/02/04 职场文书
小学入学感言
2015/08/01 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
app场景下uniapp的扫码记录
2022/07/23 Java/Android