利用Python yagmail三行代码实现发送邮件


Posted in Python onMay 11, 2018

Python 发送邮件

我以前在通过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()

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

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

其实网上其实是有关于python发邮件的教程的,主要用的都是smtplib库,虽然也不复杂,但是并没有今天要介绍的方法简单!

今天要介绍的重点对象——yagmail库

github项目地址: https://github.com/kootenpv/yagmail (本地下载)

话不多说,先看例子:

import yagmail
 yag = yagmail.SMTP(user='user@163.com',password='1234',host='smtp.163.com')
 contents = ['这里是内容']
 yag.send('target@qq.com','主题:这是一个主题',contents)

利用Python yagmail三行代码实现发送邮件

效果就是这样

简单讲解

yagmail.SMTP()参数

yagmail.SMTP()里面的几个重要参数!user和password顾名思义啦,就是你自己的邮箱账号和密码
但是这个问题就来了,我们平时登陆邮箱一般账号密码登陆有些时候好像是要打验证码的呀,这样python就传了个账号和密码真的能把邮件发出去吗?然鹅此密码非彼密码,用的密码是邮箱中的授权码,就是专门授权给机器登陆的密码。一般邮箱中,进入设置,然后POP3/SMTP/IMAP设置,打开服务就可以设置授权码了。

send()参数

yag.send(to=args.to,subject=args.subject,contents=args.contents,attachments=args.attachments)

args.to 是收件人邮箱(给多个目标发邮件只需创建一个列表,将邮箱放在列表中即可)

args.subject 是主题

args.contents 是邮箱正文

args.attachments 是附件(传入文件路径)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python实现删除Android工程中的冗余字符串
Jan 19 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
在python Numpy中求向量和矩阵的范数实例
Aug 26 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
python文件路径操作方法总结
Dec 21 Python
详解Python Celery和RabbitMQ实战教程
Jan 20 Python
Python中全局变量和局部变量的理解与区别
Feb 07 Python
浅谈怎么给Python添加类型标注
Jun 08 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
May 10 #Python
解决python3 json数据包含中文的读写问题
May 10 #Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 #Python
对python3 urllib包与http包的使用详解
May 10 #Python
Python3处理HTTP请求的实例
May 10 #Python
python字符串与url编码的转换实例
May 10 #Python
Python中的单继承与多继承实例分析
May 10 #Python
You might like
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javascript第一课
2007/02/27 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
微信小程序静默登录的实现代码
2020/01/08 Javascript
python 域名分析工具实现代码
2009/07/15 Python
Python 错误和异常小结
2013/10/09 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
美国创意之家:BulbHead
2017/07/12 全球购物
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
战友聚会策划方案
2014/06/13 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书