利用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中用PIL库批量给图片加上序号的教程
May 06 Python
Python实现批量下载文件
May 17 Python
Python中单例模式总结
Feb 20 Python
Python实现多进程的四种方式
Feb 22 Python
详解python使用turtle库来画一朵花
Mar 21 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
python3中sorted函数里cmp参数改变详解
Mar 12 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
pycharm2020.2 配置使用的方法详解
Sep 16 Python
Python selenium的这三种等待方式一定要会!
Jun 10 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
第九节--绑定
2006/11/16 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
php遍历目录方法小结
2015/03/10 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
bpython 功能强大的Python shell
2016/02/16 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
如何更优雅地写python代码
2019/07/02 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
师范应届生语文教师求职信
2013/10/29 职场文书
工厂见习报告范文
2014/10/31 职场文书
小学思想品德教学反思
2016/02/24 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫