利用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的socket编程入门教程
Apr 23 Python
Python 多进程和数据传递的理解
Oct 09 Python
Python使用pyh生成HTML文档的方法示例
Mar 10 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
解决python中无法自动补全代码的问题
Dec 04 Python
python flask几分钟实现web服务的例子
Jul 26 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
python enumerate内置函数用法总结
Jan 07 Python
使用Python制作新型冠状病毒实时疫情图
Jan 28 Python
深入浅析python的第三方库pandas
Feb 13 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
python thrift 实现 单端口多服务的过程
Jun 08 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与已存在的Java应用程序集成
2006/10/09 PHP
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
php中in_array函数用法探究
2014/11/25 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
使用Python爬取最好大学网大学排名
2018/02/24 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
物业招聘计划书
2014/01/10 职场文书
企业新年寄语
2014/04/04 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
质量安全标语
2014/06/07 职场文书
股东出资证明书范例
2014/10/04 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python