前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python3 SMTP发送邮件

python3 SMTP发送邮件

作者头像
行云博客
发布于 2022-05-10 13:19:44
发布于 2022-05-10 13:19:44
6360
举报
文章被收录于专栏:行云博客行云博客

最近看了一个资料关于用python来实现SMTP发送邮件,觉得挺有意思就实践了一下。先简单介绍一下吧

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。创建SMTP对象的方法也很简单:

import smtplib

smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

我们利用这个就可以实现SMTP发送邮件。前提是你的邮箱打开了SMTP服务(笑)。话不多说上代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

import smtplib from email.mime.text import MIMEText i=1 mail_host = "smtp.qq.com" #服务主机 mail_user = "****@qq.com" #发送者邮箱 mail_pass = "****" #授权码 sender = "****@qq.com" #发送者邮箱 receivers = ["****@qq.com"] #接收者邮箱 content = "python测试发送邮件2333" #内容 title = "测试邮件" #标题 message = MIMEText(content, "plain", "utf-8") message["From"] = "{}".format(sender) message["To"] = ",".join(receivers) message["Subject"] = title while i<4: try: smtpObj = smtplib.SMTP_SSL(mail_host, 465) smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print("发送成功") except smtplib.SMTPException as e: print(e) print(i) i+=1

这里是用的qq邮箱,端口建议使用465端口,当然25端口也是可以的,465是ssl加密的,而25是未加密,不知为什么qq使用25端口会报错,搜索一下得知是被屏蔽了。

详细教程和解释可以查看此网站:https://www.runoob.com/python3/python3-smtp.html

行云博客 - 免责申明 本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我联系处理。敬请谅解!

本文链接:https://www.xy586.top/467.html

转载请注明文章来源:行云博客 » python3 SMTP发送邮件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2000-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《现代Typescript高级教程》高级类型
映射类型(Mapped Types)是 TypeScript 中一种强大的类型操作工具,它允许我们在编译时转换已知类型的属性,并创建一个新的类型。通过映射类型,我们可以对已有类型的属性进行转换、修改或添加新的属性。这在许多情况下都非常有用,例如将属性变为只读或可选,从现有属性中选择一部分属性等。
linwu
2023/07/27
2540
TypeScript进阶(三)类型演算与高级内置类型
TypeScript 是一种静态类型检查的 JavaScript 超集,它通过类型注解和类型推断来提供更强大的类型系统。在 TypeScript 中,类型演算是一种重要的概念,它允许我们在编译时对类型进行操作和计算。本文将深入探讨 TypeScript 类型演算的原理和应用。
can4hou6joeng4
2023/11/28
3520
深入学习下 TypeScript 中的泛型
泛型是静态类型语言的基本特征,允许开发人员将类型作为参数传递给另一种类型、函数或其他结构。当开发人员使他们的组件成为通用组件时,他们使该组件能够接受和强制在使用组件时传入的类型,这提高了代码灵活性,使组件可重用并消除重复。
前端达人
2023/02/17
39.3K0
深入学习下 TypeScript 中的泛型
深入学习下 TypeScript 中的泛型
泛型是静态类型语言的基本特征,允许开发人员将类型作为参数传递给另一种类型、函数或其他结构。当开发人员使他们的组件成为通用组件时,他们使该组件能够接受和强制在使用组件时传入的类型,这提高了代码灵活性,使组件可重用并消除重复。
用户11255396
2024/08/25
4960
速查手册 - TypeScript 高级类型 cheat sheet
温馨提示:因微信中外链都无法点击,请通过文末的” “阅读原文” 到技术博客中完整查阅版;(本文整理自技术博客)
JSCON简时空
2020/03/31
1.4K0
TypeScript 强大的类型别名
类型别名会给一个类型起个新名字。类型别名有时和接口很像,但是可以作用于原始值,联合类型,元组以及其它任何你需要手写的类型。
coder_koala
2019/11/20
3.5K0
TypeScript进阶 之 重难点梳理
JavaScript 毋庸置疑是一门非常好的语言,但是其也有很多的弊端,其中不乏是作者设计之处留下的一些 “bug”。当然,瑕不掩瑜~
Nealyang
2020/03/25
4K0
TypeScript进阶 之 重难点梳理
TS 从 0 到 1 - 泛型进阶
设计泛型是为了在成员之间提供有意义的约束,这些成员可以是:类的实例成员、类的方法、函数参数和函数返回值。
Cellinlab
2023/05/17
7760
一文搞懂TypeScript泛型,让你的组件复用性大幅提升
在这篇文章中,我们将学习如何通过泛型实现类型安全,同时不牺牲性能或效率。泛型允许我们在尖括号中定义一个类型参数,如。此外,它们还允许我们编写泛型类、方法和函数。
前端达人
2024/06/14
7820
一文搞懂TypeScript泛型,让你的组件复用性大幅提升
深入理解 TypeScript 中的 Keyof 运算符,让你的代码更安全、更灵活!
keyof 运算符是在 TypeScript 2.1 版本中引入的。这个关键字已经成为 TypeScript 中高级类型的基石,并在代码中经常使用。它被称为索引查询运算符,因为该关键字会查询 keyof 后指定的类型。索引基类型查询从属性及其相关元素(如默认关键字及其数据类型)中获取值和属性。
前端达人
2024/06/14
4330
深入理解 TypeScript 中的 Keyof 运算符,让你的代码更安全、更灵活!
Typescript 高级用法以及项目实战问题
unknown 指的是「不可预先定义的类型」,在很多场景下,它可以替代 any 的功能同时保留静态检查的能力。
山月
2021/08/10
2K0
TypeScript 类型体操 - 基础操作
类型即 number、boolean、string 等基础类型和 Object、Function 等复合类型,它们是编程语言提供的对不同内容的抽象:
Cellinlab
2023/05/17
1.9K0
类型体操:探究 TypeScript 内置高级类型
TypeScript 的类型系统,最基本的是简单对应 JavaScript 的 基本类型,比如 string、number、boolean 等,然后是新增的 tuple、enum、复合类型、交叉类型、索引类型等 增强类型。
前端西瓜哥
2022/12/21
9230
类型体操:探究 TypeScript 内置高级类型
Typescript常看常新
在看了同事推荐的ts教程后,发现自己还是有很多不会的,所以整理出一些自己学到的新知识点,希望各位也能有所收获!(我就写给自己看看,不要太当回事哈哈哈
y191024
2024/01/22
2650
Typescript常看常新
【TypeScript 4.5】007-第 7 章 类型操纵
泛型类型、keyof 类型操作符、typeof 类型操作符、索引访问类型、条件类型、映射类型、模板字面量类型
訾博ZiBo
2025/01/06
520
TypeScript的另一面:类型编程
作为前端开发的趋势之一,TypeScript 正在越来越普及,很多人像我一样写了 TS 后再也回不去了,比如写再小的demo也要用 TS(得益于ts-node[1]),JS 只有在配置文件如Webpack(实际上,接下来肯定会有用TS写配置文件的趋势,如Vite)、ESLint等时才会用到。但同样,也有部分开发者对TS持有拒绝的态度,如nodemon的作者就曾表示自己从来没有使用过TS(见 #1565[2])。但同样还有另外一部分人认为TS学习成本太高,所以一直没有开始学习的决心。
zz_jesse
2021/07/30
1.7K0
在 TypeScript 中使用泛型:使用指南
TypeScript,一种基于 JavaScript 之上编写的强类型语言,使得编写大型应用的代码发生了变革,它提供了先进的类型特性和工具,比如类型接口,泛型(作为最强大的工具之一,用于编写可扩展,可重用组件而不牺牲类型安全性)。在本文中,我们将深入 TypeScript 的泛型世界,探索它们怎么用来编写干净,更可维护性且强健和易理解的代码。
Jimmy_is_jimmy
2024/05/23
2870
在 TypeScript 中使用泛型:使用指南
掌握 TypeScript:20 个提高代码质量的最佳实践
TypeScript 是一种广泛使用的开源编程语言,非常适合现代化开发。借助它先进的类型系统,TypeScript 允许开发者编写更加强健、可维护和可扩展的代码。但是,要真正发挥 TypeScript 的威力并构建高质量的项目,了解和遵循最佳实践至关重要。在本文中,我们将深入探索 TypeScript 的世界,并探讨掌握该语言的 21 个最佳实践。这些最佳实践涵盖了各种主题,并提供了如何在真实项目中应用它们的具体示例。无论你是初学者还是经验丰富的 TypeScript 开发者,本文都将提供有价值的见解和技巧,帮助你编写干净高效的代码。
前端小智@大迁世界
2023/03/17
4.3K0
TypeScript基础(五)泛型
在编程中,我们经常会遇到需要处理不同类型数据的情况。为了提高代码的复用性和灵活性,TypeScript引入了泛型的概念。泛型可以让我们在定义函数、类或接口时,不预先指定具体的类型,而是在使用时再指定类型。本文将详细介绍TypeScript中泛型的使用方法和技巧。
can4hou6joeng4
2023/11/17
3931
TypeScript小笔记
比如各种框架的常用类型,ts中内置的常用类型,以及一些容易被忽略和遗忘的点,陆陆续续顺手把他们写到文章中记录起来。
19组清风
2021/11/15
1.1K0
TypeScript小笔记
相关推荐
《现代Typescript高级教程》高级类型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档