利用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读取word文档的方法
May 09 Python
python实现的简单抽奖系统实例
May 22 Python
python提取字典key列表的方法
Jul 11 Python
python3+PyQt5自定义视图详解
Apr 24 Python
python 日期操作类代码
May 05 Python
python 多个参数不为空校验方法
Feb 14 Python
python深copy和浅copy区别对比解析
Dec 26 Python
tensorflow 变长序列存储实例
Jan 20 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
Python json读写方式和字典相互转化
Apr 18 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
Aug 07 Python
Python实现信息管理系统
Jun 05 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
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
nodejs语言实现验证码生成功能的示例代码
2019/10/13 NodeJs
JavaScript闭包相关知识解析
2019/10/19 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
详解Django中的过滤器
2015/07/16 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
在keras里实现自定义上采样层
2020/06/28 Python
python PIL模块的基本使用
2020/09/29 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
商务助理求职信范文
2014/04/20 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
入党心得体会
2019/06/20 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏