利用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中关键字is与==的区别简述
Jul 31 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
Python 日期的转换及计算的具体使用详解
Jan 16 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
Python 代码调试技巧示例代码
Aug 11 Python
Python grpc超时机制代码示例
Sep 14 Python
python如何实现DES加密
Sep 21 Python
Python爬虫开发与项目实战
Dec 16 Python
python 网络编程要点总结
Jun 18 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导入Excel到MySQL的方法
2011/04/23 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
JavaScript中两种链式调用实现代码
2011/01/12 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
tensorflow识别自己手写数字
2018/03/14 Python
Python3数据库操作包pymysql的操作方法
2018/07/16 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
社区包粽子活动方案
2014/01/21 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
运动员获奖感言
2014/08/15 职场文书
计算机实训报告范文
2014/11/05 职场文书
校友回访母校寄语
2015/02/26 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
如何用Python搭建gRPC服务
2021/06/30 Python
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
使用Redis实现分布式锁的方法
2022/06/16 Redis