利用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 相关文章推荐
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
Dec 18 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
使用tensorflow实现线性回归
Sep 08 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
深入浅析python 协程与go协程的区别
May 09 Python
详解python调用cmd命令三种方法
Jul 08 Python
Django model select的多种用法详解
Jul 16 Python
pandas通过字典生成dataframe的方法步骤
Jul 23 Python
python程序文件扩展名知识点详解
Feb 27 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
详解查看Python解释器路径的两种方式
Oct 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
PHP模板引擎SMARTY
2006/10/09 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
ASP Json Parser修正版
2009/12/06 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
JS面向对象编程详解
2016/03/06 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
python生成ppt的方法
2018/06/07 Python
postman传递当前时间戳实例详解
2019/09/14 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
工作违纪检讨书
2014/02/17 职场文书
导游词书写之黄山
2019/08/06 职场文书
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js