利用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通过get,post方式发送http请求和接收http响应的方法
May 26 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
TensorFlow实现创建分类器
Feb 06 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
Python绘制热力图示例
Sep 27 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
Python日志器使用方法及原理解析
Sep 27 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
pytorch 中forward 的用法与解释说明
Feb 26 Python
Python中tkinter的用户登录管理的实现
Apr 22 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
生成卡号php代码
2008/04/09 PHP
劣质的PHP代码简化
2010/02/08 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
情人节之礼 js项链效果
2012/02/13 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
python mysqldb连接数据库
2009/03/16 Python
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
大学生应聘导游自荐信
2014/06/02 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python