SMTP 是发送邮件的协议。Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮箱。
Python对SMTP支持有smtplib 和email 两个模块,email负责构造邮件,smtplib 负责发送邮件。**

用QQ邮箱发送邮件之前必须登录QQ邮箱开启SMTP服务。

**

第一步 登录邮箱后点击设置

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020111415533613.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5NDk2NA==,size_16,color_FFFFFF,t_70#pic_center)

第二步 点击 账户

第三步 向下滚动滑轮,找到这个位置,将图片中标记的前两个功能点击开启.到这一步恭喜您,您已经开启了qq邮箱的smtp功能. 点击生 成授权码 按照提示继续操作就可以获取授权码了


**

复制生成的授权码!!!

**

1、发送纯文本邮箱

# -*- encoding: utf-8 -*-
"""
@Time    : 2020/11/14 15:13
@Author  : starTao
"""
from email.mime.text import MIMEText
# 发送的文本内容    (也不要敏感词,QQ邮箱会检测到,导致发送失败的)
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
# 输入Email地址和口令:
from_addr = "发送者QQ邮箱"         #发送者QQ邮箱
password = "开始SMTP生产的授权码!!!不是你的QQ邮箱登录密码"          #开始SMTP生产的授权码!!!不是你的QQ邮箱登录密码
# 输入收件人地址:
to_addr = "收件人的邮箱"          #收件人的邮箱
# 输入SMTP服务器地址:
smtp_server = "smtp.qq.com"            #QQ邮箱的SMTP服务器地址import smtplib
# server = smtplib.SMTP(smtp_server, 465) # SMTP协议默认端口是25
server = smtplib.SMTP_SSL(smtp_server,465)    #QQ邮箱的SMTP的端口是465
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

2、发送html邮件

data = [(0, '曾经的武汉方舱医院开音乐会了', 0, '热'),('1', '林更新 内娱反黑第一人', '3315553', '沸'),('2', '特朗普团队选举诉讼在多州被驳回', '1341019', '新')]def send_email(data):send_time = time.strftime('%Y-%m-%d')from_addr = "发送者QQ邮箱"  smtpserver = "smtp.qq.com"password = "开始SMTP生成的授权码!!!不是你的QQ邮箱登录密码"   # 接收邮箱的账号to_addr = "收件人邮箱"# to_addrs = [to_addr,from_addr]# 邮件的标题subject = f"{send_time} 微博热搜"table = "<table>"for item in data:table +=f"<tr><td>{item[0]}:{item[1]}:{item[2]}:{item[3]}</td></tr>"table+="</table>"content = tablemsg = MIMEText(content,'html','utf-8')msg['Subject'] = Header(subject,'utf-8')msg['From'] = from_addrmsg['To'] = to_addrsmtp = smtplib.SMTP_SSL(smtpserver,465)smtp.helo(smtpserver)  # helo向邮箱标识用户身份smtp.ehlo(smtpserver)  # 服务器返回结果确认smtp.login(from_addr, password)  # 登录邮箱服务器,输入自己的账号和密码print("热搜发送中...")# smtp.sendmail(user,to_addrs,msgroot.as_string())# 邮件发送多人smtp.sendmail(from_addr, to_addr, msg.as_string())  # 发送给个人的邮件smtp.quit()print("发送完毕")

3、 发送图片

import traceback
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
import smtplib, sslif __name__ == '__main__':from_addr = ""smtpserver = "smtp.qq.com"password = ""  # 密码,填写自己的密码即可,163邮箱和网页登录的邮箱不同context = ssl.create_default_context()mail = MIMEMultipart()to_addr = ""mail['Subject'] = 'Picture Test'img_file = open(r'C:\Users\Administrator.USER-20140212SA\Desktop\壁纸\邮箱\4.jpg', 'rb')img_data = img_file.read()img_file.close()img = MIMEImage(img_data)img.add_header('Content-ID', 'dns_config')  # 给一个content Id 供后面html内容引用mail.attach(img)mail_content = """<html><body><p>This is a picture</p><img src="cid:dns_config"></body></html>"""  # 构建html邮件内容mail.attach(MIMEText(mail_content, 'html', 'utf-8'))# 通过邮件服务器来发送邮件try:smtp = smtplib.SMTP_SSL(smtpserver,465)smtp.ehlo()smtp.ehlo()smtp.login(from_addr, password)smtp.sendmail(from_addr, to_addr,  mail.as_string())except Exception:traceback.print_exc()

本文特别感谢参考链接:

https://jingyan.baidu.com/article/3052f5a1ee816d97f31f86b8.htmlhttps://zhuanlan.zhihu.com/p/70891745https://blog.csdn.net/hihell

python 用QQ邮箱发送邮件相关推荐

  1. smtplib库:Python使用QQ邮箱发送邮件

    目录 前言 发送email文本消息 发送email图片与附件消息 前言 一般来说,每个App都有一个意见反馈功能.对于企业,其意见反馈自然是发送到其服务器上,而对于个人应用来说,因为使用的人相对较少, ...

  2. Web自动化【7】——python 使用QQ邮箱发送邮件,端口号25,465,578,的区别,及错误码535,530的解决办法

    先上代码,方式一二三分别对应使用smtp不同端口号发送邮件的实现方式. (1)端口号25:明文传输 (2)端口号456,基于SSL协议 (3)端口号578,基于STARTTLS协议 所以实现当时会有所 ...

  3. 使用python操作qq邮箱发送邮件

    ##历时3天,终于写完了这个代码, 以下全是干货 import smtplib from email.mime.text import MIMEText#确定发送方.邮箱授权码和接收方,邮件主题和内容 ...

  4. Python登录qq邮箱发送邮件(附件)

    # -*- coding: utf-8 -*- #导入smtplib和MIMETextimport smtplib,time from email.mime.text import MIMEText ...

  5. 用Python使用QQ邮箱发送邮件

    写在开头的话:发邮件当然还是用邮箱来的方便,但是这个不可以用来装B不是 向单个人发送邮件 from email import encoders from email.header import Hea ...

  6. python登录qq邮箱爬邮件_python实现QQ邮箱发送邮件

    本文实例为大家共享了python实现QQ邮箱发送邮件的详细代码,供大家参考,详细内容如下 1.代码: #!/usr/bin/python # -*- coding: utf-8 -*- import ...

  7. Python使用QQ邮箱发送多收件人email

    实际开发过程中使用到邮箱的概率很高,那么如何借助python使用qq邮箱发送邮件呢? 代码很简单,短短几行代码就可以实现这个功能. 使用到的模块有smtplib和email这个两个模块,关于这两个模块 ...

  8. python脚本实现qq邮箱发送邮件

    直接调用python自带得smtplib 库和 email 库就能实现邮件的发送 qq邮箱发送邮件需要在qq邮箱中设置开启qq邮箱授权码 进入网页版qq邮箱,点击设置,找到账户设置 下拉到最下面 生成 ...

  9. python向自己qq邮箱发信息_Python实现给qq邮箱发送邮件的方法

    本文实例讲述了Python实现给qq邮箱发送邮件的方法..具体实现方法如下: #-*-coding:utf-8-*- #======================================== ...

最新文章

  1. python 去除字符串两端字符串
  2. oracle中的存在函数吗,Oracle判断表是否存在的函数
  3. 推荐一个非常好用的Chrome扩展应用,用于美化Json字符串 1
  4. 获得最新纪录 sql
  5. MySql通过Limit限制查询的行数
  6. mysql增加表中数值的sql语句_sql语句--MySql添加表数据
  7. 媒体查询加上rem实现页面字体大小自适应
  8. 千兆网络PHY芯片 RTL8211E的实践应用
  9. 一个问题讨论:为什么有些境外和港澳台地区的手机APP打不开
  10. lanp+nginx实现动静分离
  11. 中继器制作联动下拉列表
  12. 设计模式(二) 访问者模式 Vistor
  13. 一唯,ev录屏过程中断电视频的恢复,视频恢复修复
  14. 详解熵、最大熵、联合熵和条件熵、相对熵以及互信息之间的关系
  15. 什么是编码?什么是解码?
  16. django2.1.7从0开始搭建一个个人博客网站第5天
  17. JSP设置表格边框为单实线
  18. 广点通sdk接入(作为广告主身份)
  19. axios 的 qs库
  20. 生活哲理故事系列之六(转贴)

热门文章

  1. 电子计算机科学工程,计算机科学与技术学院
  2. EXCEL骨灰级玩家必备技能,学会后年薪翻倍!年轻人耗子尾汁
  3. 基于Strongswan的IPSec部署
  4. 蓝桥杯 算法训练 粘木棍
  5. 中国海洋大学计算机考研资料汇总
  6. Megacli命令的使用总结
  7. redis命中率不高问题排查
  8. java spring常见问题
  9. 亲历校招面试问答【回顾记录】
  10. SQL求总和的百分比