利用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编写分析Python程序性能的工具的教程
Apr 01 Python
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
python实现转圈打印矩阵
Mar 02 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
用python实现学生管理系统
Jul 24 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 Python
python 写一个文件分发小程序
Dec 05 Python
Python之Sklearn使用入门教程
Feb 19 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 array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php实现的ping端口函数实例
2014/11/12 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
Python实现上下文管理器的方法
2020/08/07 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
事业单位接收函
2014/01/10 职场文书
综合实践活动方案
2014/02/14 职场文书
银行服务感言
2014/03/01 职场文书
安全生产计划书
2014/05/04 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
材料员岗位职责范本
2015/04/11 职场文书
法制教育观后感
2015/06/17 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
Go使用协程交替打印字符
2021/04/29 Golang
详解vue中v-for的key唯一性
2021/05/15 Vue.js
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL