利用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连接mysql数据库示例(做增删改操作)
Dec 31 Python
Python中的字符串操作和编码Unicode详解
Jan 18 Python
flask session组件的使用示例
Dec 25 Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
Jul 31 Python
python pillow模块使用方法详解
Aug 30 Python
利用Python脚本实现自动刷网课
Feb 03 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
May 14 Python
Python实现天气查询软件
Jun 07 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中rank函数功能的方法
2015/01/20 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
vue组件watch属性实例讲解
2017/11/07 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
Python中with及contextlib的用法详解
2017/06/08 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
生物技术研究生自荐信
2013/11/12 职场文书
销售总监工作职责
2013/11/21 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
护理医院见习报告
2014/11/03 职场文书
工程部经理岗位职责
2015/02/02 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
python批量创建变量并赋值操作
2021/06/03 Python