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输出指定月份日历的方法
Apr 23 Python
Python序列操作之进阶篇
Dec 08 Python
Python生成随机密码的方法
Jun 16 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
python判断无向图环是否存在的示例
Nov 22 Python
django在开发中取消外键约束的实现
May 20 Python
详解Python 循环嵌套
Jul 09 Python
浅析Python的命名空间与作用域
Nov 25 Python
利用python进行文件操作
Dec 04 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 04 Python
解析python中的jsonpath 提取器
Jan 18 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
jQuery实现跨域
2015/02/03 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
全面解析Python的While循环语句的使用方法
2015/10/13 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python文本数据相似度的度量
2018/03/12 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
python3多线程知识点总结
2019/09/26 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
Python matplotlib实时画图案例
2020/04/23 Python
印度在线购物网站:Paytmmall
2019/07/24 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
2014年教师节寄语
2014/04/03 职场文书
保护野生动物倡议书
2014/05/16 职场文书
九华山导游词
2015/02/03 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
同事离别感言
2015/08/04 职场文书