Python发送QQ邮件

news2024/11/18 13:53:23

使用Python的smtplib可以发送QQ邮件,代码如下

#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header


sender = '111@qq.com'  # 发送邮箱
receivers = ['222@qq.com']  # 接收邮箱
auth_code = "abc"  # 授权码

message = MIMEText('Python发送邮件', 'plain', 'utf-8')
message['From'] = Header("Sender<%s>" % sender)  # 发送者
message['To'] = Header("Receiver<%s>" % receivers[0])  # 接收者

subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')


try:
    server = smtplib.SMTP_SSL('smtp.qq.com', 465)
    server.login(sender, auth_code)
    server.sendmail(sender, receivers, message.as_string())
    print("邮件发送成功")
    server.close()
except smtplib.SMTPException:
    print("Error: 无法发送邮件")

发送邮件服务器要用465端口,否则如下错误:
login的密码不是邮箱登录密码,而是授权码,需要在QQ邮箱设置-账号里获取。
1
否则会报如下错误:

SMTPServerDisconnected: Connection unexpectedly closed
SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1002)

发送消息的From和To要用标准格式,否则报错:

SMTPDataError: (550, b'The "From" header is missing or invalid. Please follow RFC5322, RFC2047, RFC822 standard protocol. https://service.mail.qq.com/detail/124/995.')

1

参考

https://wx.mail.qq.com/list/readtemplate?name=app_intro.html#/agreement/authorizationCode
https://help.mail.qq.com/detail/0/994
https://docs.python.org/zh-cn/3/library/netdata.html
https://docs.python.org/zh-cn/3/library/smtplib.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/886680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

流媒体服务-传输延时(SEI插帧)

什么是延时 很多小伙伴认为&#xff0c;当推流端和拉流端显示的时间不一致&#xff0c;即为延时。 其实这种看法是比较片面的&#xff0c;不同的播放器&#xff0c;对同一路流进行测试&#xff0c;可能会得到不同的结果。 一般来说&#xff0c;延时为以下几个部分的累加组成 …

最近抖音很火的情侣飞行棋

最近抖音很火的情侣飞行棋 最近抖音很火的情侣飞行棋&#xff0c;这款情侣飞行棋提供了丰富的游戏玩法&#xff0c;可以为情侣、朋友或家人带来欢乐的游戏体验。扫码进行体验识别 无论是在家中&#xff0c;还是在聚会、旅行等场合&#xff0c;都可以轻松启动该网站&#xff0c…

为何千万别学网络安全专业(网络安全小白避坑的建议解析)

前言&#xff1a; 近年来&#xff0c;随着国家对网络安全的战略关注和新基建的持续投入&#xff0c;网络安全专业成为一个热门话题。然而&#xff0c;好专业不一定就能找到好工作&#xff0c;对于想从事网络安全专业的小白们&#xff0c;需要持谨慎态度&#xff0c;避免走一些…

案例:用户登录/注册

文章目录 技术框架说明登录案例1.需求分析2.环境准备2.1 前端页面2.2 创建数据表及对应的实体类2.3 导入mybatis坐标&#xff0c;MySQL坐标2.4 配置文件及接口 3. 用户名密码校验4. 前端配置5.Servlet编写 注册案例1.需求分析2.配置用户接口3. 测试添加用户4. 前端配置5. servl…

【概念理解】STM32中的sprintf()函数

sprintf()函数 这个函数在 stdio.h中&#xff1b;可以将格式化的数据写入到一个字符串缓冲区中。 int sprintf(char *str, const char *format, ...);str&#xff1a;指向字符数组的指针&#xff0c;即用于存储格式化后字符串的缓冲区。format&#xff1a;格式化字符串&#…

通过nvm切换nodejs版本

下载&#xff1a; 1.下载nvm地址&#xff1a; https://github.com/coreybutler/nvm-windows/releases 下载该安装包&#xff0c;下载后无需配置就可以使用&#xff0c;十分方便。 简单说明一些包&#xff1a; nvm - noinstall.zip &#xff1a; 这个是绿色免安装版本&#…

c++ std::shared_ptr的线程安全问题(race condition)

有 3 个 shared_ptr 对象 x、g、n; 两个工作线程&#xff1a; void main(){shared_ptr g(new Foo); // 线程之间共享的 shared_ptr shared_ptr x; // 线程 A 的局部变量 shared_ptr n(new Foo); // 线程 B 的局部变量std::thread([&]{x g; }).detach();std::thread([&…

分布式 - 消息队列Kafka:Kafka 消费者的消费位移

文章目录 01. Kafka 分区位移02. Kafka 消费位移03. kafka 消费位移的作用04. Kafka 消费位移的提交05. kafka 消费位移的存储位置06. Kafka 消费位移与消费者提交的位移07. kafka 消费位移的提交时机08. Kafka 维护消费状态跟踪的方法 01. Kafka 分区位移 对于Kafka中的分区而…

每日一题——移动零

移动零 题目链接 思路——双指针 如果可以开辟额外的空间&#xff0c;那这题十分好做。我们开辟和nums同样大小的空间&#xff0c;将遍历数组&#xff0c;将非零元素从头放置&#xff0c;将零从后往前放置&#xff0c;这样就可以将所有的零放到后面&#xff0c;同时保证非零元…

安全狗获批成为算网融合产业及标准推进委员会伙伴单位

近日&#xff0c;安全狗获批成为中国通信标准化协会算网融合产业及标准推进委员会伙伴单位。 据悉&#xff0c;中国通信标准化协会算网融合产业及标准推进委员会&#xff0c;致力于算网融合、数字化转型、SDN/NFV、SD-WAN、新基建、信息安全、边缘计算、高性能计算领域及典型应…

品牌营销|所有产品都值得用 AI 再做一遍

微软 CEO Satya Nadella 曾经说过&#xff1a;“所有的产品都值得用 AI 重做一遍。” AI 大模型的出现&#xff0c;开启了一个全新的智能化时代&#xff0c;重新定义了人机交互。这让生成式 AI 技术变得「触手可得」&#xff0c;也让各行业看到 AGI 驱动商业增长的更大可能性。…

基于注册中心如何实现全链路灰度

1. 为什么需要服务发现? 2. 微服务注册中心 3. 基于注册中心如何实现全链路灰度 4. GRPC 如何结合注册中心 GRPC服务发现与全链路灰度 为什么需要服务发现? 服务拆分 配置调用 如果有很多服务怎么办&#xff1f; 服务注册 服务发现 注册中心的架构 配置与使用 常见的…

西瓜书之神经网络

一&#xff0c;神经元模型 所谓神经网络&#xff0c; 目前用得最广泛的一个定义是“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络&#xff0c;它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应”。 M-P神经元 M-P神经元&#xff1a;接收n个输入(…

存算分离实践:构建轻量、云中立的大数据平台

今天我们将分享社区用户多点 DMALL 的案例。多点 DMALL 是亚洲领先的全渠道数字零售解决方案服务商&#xff0c;目前已与 380 家零售企业达成合作&#xff0c;覆盖 6 个国家和地区。 面对 B 端客户日益增长的企业数据&#xff0c;存算一体的架构显得力不从心。计算资源冗余浪费…

CAS问题汇总

CAS的执行流程&#xff1f; CAS比较比替换的大致流程是这样的: 首先它有三个参数 &#xff1a; V 内存值 A 预期的旧值 B 新值比较V的值与A的值是否相等如果相等的话&#xff0c;则将V的值替换成B&#xff0c;否则就提示修改失败。 一般正常情况的话就是没有其他线程修改内存…

解决内网GitLab 社区版 15.11.13项目拉取失败

问题描述 GitLab 社区版 发布不久&#xff0c;搭建在内网拉取项目报错&#xff0c;可能提示 unable to access https://github.comxxxxxxxxxxx: Failed to connect to xxxxxxxxxxxxxGit clone error - Invalid argument error:14077438:SSL routines:SSL23_GET_S 15.11.13ht…

工业互联网产业联盟发布《2023可信工业数据流通应用案例集》

导读 随着新一代信息技术与制造业的深度融合发展&#xff0c;全球工业数据应用已经进入纵深发展的新阶段&#xff0c;数据作为新型生产要素和重要战略资源&#xff0c;正在制造业数字化转型过程中发挥出更大的作用。在这一进程中&#xff0c;工业数据的流通共享受到广泛关注。…

深入探索JavaEE单体架构、微服务架构与云原生架构

课程链接&#xff1a; 链接: https://pan.baidu.com/s/1xSI1ofwYXfqOchfwszCZnA?pwd4s99 提取码: 4s99 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 --来自百度网盘超级会员v4的分享 课程介绍&#xff1a; &#x1f50d;【00】模块零&#xff1a;开营直播&a…

LeetCode集

目录 1、算法1.1 排序1.1.1 冒泡排序1.1.1.1 简单交换排序1.1.1.2 冒泡排序 1.1.2 简单选择排序1.1.3 直接插入排序1.1.4 希尔排序1.1.5 堆排序1.1.6 归并排序1.1.7 快速排序 1.1 位运算/二进制1.1.1 Java中的正数、负数1.1.2 Java中的位运算1.1.3 比特位计数1.1.4 2的幂1.1.5 …

【腾讯云Cloud Studio实战训练营】Cloud Studio + iPad,让代码之舞飞扬在指尖

Cloud Studio iPad&#xff0c;让代码之舞飞扬在指尖 妙手偶得&#xff0c;开启神奇之旅立即反馈&#xff0c;一切尽在掌握版本控制&#xff0c;简单易用MetaWork 协作&#xff0c;摸鱼变得不再轻松 ​一直以来&#xff0c;开发者大多都习惯在电脑端开发&#xff0c;而iPad只是…