python使用QQ邮箱实现自动发送邮件


Posted in Python onJune 22, 2020

最近用到Python自动发送邮件,主要就是三步,登录邮件、写邮件内容、发送,用到的库是 smtplib 和 email,直接使用pip安装即可

我使用的是QQ邮箱,首先需要设置QQ邮箱POP3/SMTP服务

python使用QQ邮箱实现自动发送邮件

python使用QQ邮箱实现自动发送邮件

python使用QQ邮箱实现自动发送邮件

记住这个授权码,这个授权码就是Python脚本中登录邮箱时的密码,而不是你平时登录邮箱时的那个密码

一.发送普通文本邮件

#发送多种类型的邮件
from email.mime.multipart import MIMEMultipart
 
msg_from = '1508691067@qq.com' # 发送方邮箱
passwd = 'xxx'  #就是上面的授权码
 
to= ['1508691067@qq.com'] #接受方邮箱
 
#设置邮件内容
#MIMEMultipart类可以放任何内容
msg = MIMEMultipart()
conntent="这个是字符串"
#把内容加进去
msg.attach(MIMEText(conntent,'plain','utf-8'))
 
#设置邮件主题
msg['Subject']="这个是邮件主题"
 
#发送方信息
msg['From']=msg_from
 
#开始发送
 
#通过SSL方式发送,服务器地址和端口
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 登录邮箱
s.login(msg_from, passwd)
#开始发送
s.sendmail(msg_from,to,msg.as_string())
print("邮件发送成功")

python使用QQ邮箱实现自动发送邮件

二.发送携带附件的邮件

import smtplib
from email.mime.text import MIMEText
#发送多种类型的邮件
from email.mime.multipart import MIMEMultipart
 
msg_from = '1508691067@qq.com' # 发送方邮箱
passwd = 'xxxxx'
 
to= ['1508691067@qq.com'] #接受方邮箱
 
#设置邮件内容
#MIMEMultipart类可以放任何内容
msg = MIMEMultipart()
conntent="这个是字符串"
#把内容加进去
msg.attach(MIMEText(conntent,'plain','utf-8'))
 
#添加附件
att1=MIMEText(open('result.xlsx','rb').read(),'base64','utf-8') #打开附件
att1['Content-Type']='application/octet-stream'  #设置类型是流媒体格式
att1['Content-Disposition']='attachment;filename=result.xlsx' #设置描述信息
 
msg.attach(att1)  #加入到邮件中
 
#设置邮件主题
msg['Subject']="这个是邮件主题"
 
#发送方信息
msg['From']=msg_from
 
#开始发送
 
#通过SSL方式发送,服务器地址和端口
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 登录邮箱
s.login(msg_from, passwd)
#开始发送
s.sendmail(msg_from,to,msg.as_string())
print("邮件发送成功")

python使用QQ邮箱实现自动发送邮件

三.发送携带图片的附件

同理,可以使用上面的方法也可以发送图片附件

import smtplib
from email.mime.text import MIMEText
#发送多种类型的邮件
from email.mime.multipart import MIMEMultipart
 
msg_from = '1508691067@qq.com' # 发送方邮箱
passwd = 'xxxxx'
 
to= ['1508691067@qq.com'] #接受方邮箱
 
#设置邮件内容
#MIMEMultipart类可以放任何内容
msg = MIMEMultipart()
conntent="这个是字符串"
#把内容加进去
msg.attach(MIMEText(conntent,'plain','utf-8'))
 
#添加附件
att1=MIMEText(open('result.xlsx','rb').read(),'base64','utf-8') #打开附件
att1['Content-Type']='application/octet-stream'  #设置类型是流媒体格式
att1['Content-Disposition']='attachment;filename=result.xlsx' #设置描述信息
 
att2=MIMEText(open('1.jpg','rb').read(),'base64','utf-8')
att2['Content-Type']='application/octet-stream'  #设置类型是流媒体格式
att2['Content-Disposition']='attachment;filename=1.jpg' #设置描述信息
 
msg.attach(att1)  #加入到邮件中
msg.attach(att2)
 
#设置邮件主题
msg['Subject']="这个是邮件主题"
 
#发送方信息
msg['From']=msg_from
 
#开始发送
 
#通过SSL方式发送,服务器地址和端口
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 登录邮箱
s.login(msg_from, passwd)
#开始发送
s.sendmail(msg_from,to,msg.as_string())
print("邮件发送成功")

python使用QQ邮箱实现自动发送邮件

四.发送 html 格式的邮件

import smtplib
from email.mime.text import MIMEText
#发送多种类型的邮件
from email.mime.multipart import MIMEMultipart
import datetime
msg_from = '1508691067@qq.com' # 发送方邮箱
passwd = 'xxxxxx'
 
to= ['1508691067@qq.com'] #接受方邮箱
 
#设置邮件内容
#MIMEMultipart类可以放任何内容
msg = MIMEMultipart()
# conntent="这个是字符串"
# #把内容加进去
# msg.attach(MIMEText(conntent,'plain','utf-8'))
 
#添加附件
att1=MIMEText(open('result.xlsx','rb').read(),'base64','utf-8') #打开附件
att1['Content-Type']='application/octet-stream'  #设置类型是流媒体格式
att1['Content-Disposition']='attachment;filename=result.xlsx' #设置描述信息
 
att2=MIMEText(open('1.jpg','rb').read(),'base64','utf-8')
att2['Content-Type']='application/octet-stream'  #设置类型是流媒体格式
att2['Content-Disposition']='attachment;filename=1.jpg' #设置描述信息
 
msg.attach(att1)  #加入到邮件中
msg.attach(att2)
 
 
now_time = datetime.datetime.now()
year = now_time.year
month = now_time.month
day = now_time.day
mytime = str(year) + " 年 " + str(month) + " 月 " + str(day) + " 日 "
fayanren="爱因斯坦"
zhuchiren="牛顿"
#构造HTML
content = '''
        <html>
        <body>
          <h1 align="center">这个是标题,xxxx通知</h1>
          <p><strong>您好:</strong></p>
          <blockquote><p><strong>以下内容是本次会议的纪要,请查收!</strong></p></blockquote>
          
          <blockquote><p><strong>发言人:{fayanren}</strong></p></blockquote>
          <blockquote><p><strong>主持人:{zhuchiren}</strong></p></blockquote>
          <p align="right">{mytime}</p>
        <body>
        <html>
        '''.format(fayanren=fayanren, zhuchiren=zhuchiren, mytime=mytime)
 
msg.attach(MIMEText(content,'html','utf-8'))
 
#设置邮件主题
msg['Subject']="这个是邮件主题"
 
#发送方信息
msg['From']=msg_from
 
#开始发送
 
#通过SSL方式发送,服务器地址和端口
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 登录邮箱
s.login(msg_from, passwd)
#开始发送
s.sendmail(msg_from,to,msg.as_string())
print("邮件发送成功")

python使用QQ邮箱实现自动发送邮件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python和shell变量互相传递的几种方法
Nov 20 Python
记录Django开发心得
Jul 16 Python
python监控网站运行异常并发送邮件的方法
Mar 13 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 Python
浅谈pytorch中的dropout的概率p
May 27 Python
浅谈keras中loss与val_loss的关系
Jun 22 #Python
python实现简易版学生成绩管理系统
Jun 22 #Python
python能否java成为主流语言吗
Jun 22 #Python
python让函数不返回结果的方法
Jun 22 #Python
python实现学生成绩测评系统
Jun 22 #Python
python算的上脚本语言吗
Jun 22 #Python
Python读取二进制文件代码方法解析
Jun 22 #Python
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python3+PyQt5使用数据库表视图
2018/04/24 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
Python调用C语言的实现
2019/07/26 Python
音频处理 windows10下python三方库librosa安装教程
2020/06/20 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
成教自我鉴定
2013/10/27 职场文书
海飞丝广告词
2014/03/20 职场文书
关键在于落实心得体会
2014/09/03 职场文书
个人工作表现自我评价
2015/03/06 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
Android studio 简单计算器的编写
2022/05/20 Java/Android