利用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脚本
Sep 01 Python
Python中的多重装饰器
Apr 11 Python
初步探究Python程序的执行原理
Apr 11 Python
Python中用Decorator来简化元编程的教程
Apr 13 Python
Python3里的super()和__class__使用介绍
Apr 23 Python
python中reload(module)的用法示例详解
Sep 15 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
python基础 range的用法解析
Aug 23 Python
Python-openCV读RGB通道图实例
Jan 17 Python
pycharm 激活码及使用方式的详细教程
May 12 Python
Python预测2020高考分数和录取情况
Jul 08 Python
python爬取微博评论的实例讲解
Jan 15 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
几种显示数据的方法的比较
2006/10/09 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
JavaScript错误处理
2015/02/03 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[00:14]护身甲盾
2019/03/06 DOTA
详解Python中的循环语句的用法
2015/04/09 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
Python列表切片常用操作实例解析
2020/03/10 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
python基于opencv 实现图像时钟
2021/01/04 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
西班牙手机之家:Phone House
2018/10/18 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
工商局调档介绍信
2015/10/22 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js
nginx静态资源的服务器配置方法
2022/07/07 Servers