利用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将ip地址转换成整数的方法
Mar 17 Python
python实现DES加密解密方法实例详解
Jun 30 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
python的dataframe和matrix的互换方法
Apr 11 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
python保存字典和读取字典的实例代码
Jul 07 Python
如何实现Django Rest framework版本控制
Jul 25 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
Feb 28 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
Python调用C/C++的方法解析
Aug 05 Python
Python word文本自动化操作实现方法解析
Nov 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
一个odbc连mssql分页的类
2006/10/09 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
XENON基于JSON变种
2010/07/27 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
JS实现显示当前日期的实例代码
2018/07/03 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python多进程同步简单实现代码
2016/04/27 Python
wxpython实现图书管理系统
2018/03/12 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
python实现简易学生信息管理系统
2020/04/05 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
优秀本科毕业生自荐信
2014/07/04 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
公司离职证明范本
2014/10/17 职场文书
交通事故案件代理词
2015/05/23 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
vue打包时去掉所有的console.log
2022/04/10 Vue.js
Nginx配置根据url参数重定向
2022/04/11 Servers
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript