如何用Python脚本自动发送邮件?

目录

1. 基础知识

1.1. SSH(Secure Shell)协议

1.2. SMTP(Simple Mail Transfer Protocol)协议

1.3. SSH协议与SMTP协议之间的关系

2. QQ邮箱设置

2.1. 开启SMTP服务

2.2. 编写脚本

3. 测试成功


1. 基础知识

      邮件的发送过程中会用到SSH和SMTP协议。SSH(Secure Shell)协议和SMTP(Simple Mail Transfer Protocol)协议是两种不同的网络协议,它们在网络通信中扮演着不同的角色。下面是对两者的简要介绍以及它们之间的关系:

1.1. SSH(Secure Shell)协议

      SSH是一种网络协议,用于加密方式远程登录和操作计算机系统。SSH提供了一种安全的方法,通过不安全的网络环境对服务器进行访问和管理。SSH协议常用于远程命令执行、文件传输等,它通过端口22进行通信。

1.2. SMTP(Simple Mail Transfer Protocol)协议

      SMTP是一种用于发送电子邮件的协议。它定义了邮件服务器之间如何互相发送和接收邮件的规则。SMTP通常只用于发送邮件,而接收邮件则使用POP3(Post Office Protocol version 3)或IMAP(Internet Message Access Protocol)。SMTP通常使用端口25、587或465(加密时)。

1.3. SSH协议与SMTP协议之间的关系

     SSH和SMTP协议在功能上没有直接的关系,它们分别用于不同的目的。SSH用于安全的远程管理,而SMTP用于邮件传输。不过,SSH可以与SMTP协议结合使用,提供一些额外的安全性。例如:

     1)SSH隧道(Tunneling):可以通过SSH隧道将SMTP流量加密,从而在不安全的网络中安全地发送电子邮件。这种方式可以防止中间人攻击和邮件内容泄露。

     2)SSH端口转发:可以使用SSH的端口转发功能将本地端口映射到远程的SMTP服务器上的端口,从而通过SSH连接来发送邮件,增加了传输过程的安全性。

     3)在使用SSH连接到远程服务器后,可以在该服务器上配置和管理SMTP服务,比如安装邮件服务器软件、配置邮件路由规则等。

2. QQ邮箱设置

2.1. 开启SMTP服务

    进入qq邮箱主页,选择设置 - 账号 - 开启服务(需要绑定的手机验证) - 获取授权码

2.2. 编写脚本

帮助系统如何设置POP3/SMTP的SSL加密方式?帮助系统

实验目的:利用qq邮箱给126邮箱发送邮件;

需要信息

1)2.1章节开启SMTP服务的qq邮箱更新到下面;

2)接收人的邮箱;

3)授权码;

更新脚本:将上面信息更新到下面脚本即可实现邮件发送;

import smtplibfrom email.mime.text import MIMETextfrom email.header import Header# QQ邮箱SMTP服务器地址smtp_server = 'smtp.qq.com'# 你的QQ邮箱地址sender_qq_mail = 'xxxxxxxxx@qq.com'# 收件人邮箱地址receiver_email = ['xxxxxxxxx@126.com']# QQ邮箱的SMTP授权码smtp_password = 'xxxxxxxxx'# 邮件标题subject = '测试邮件'# 邮件正文content = '这是一封测试邮件,发送自Python脚本。'# 创建一个MIMEText对象,参数分别是邮件正文、文本格式、编码message = MIMEText(content, 'plain', 'utf-8')# 设置邮件的发送者message['From'] = 'Give<xxxxxxxxx@qq.com>' #Header(sender_qq_mail, 'utf-8')# 设置邮件的接收者message['To'] = 'Give<xxxxxxxxx@126.com>' #Header(receiver_email, 'utf-8')# 设置邮件标题message['Subject'] = Header(subject, 'utf-8')try:# 创建SMTP对象server = smtplib.SMTP_SSL(smtp_server, 465)# 设置调试级别,可以看到详细的发送日志server.set_debuglevel(1)# 登录QQ邮箱服务器server.login(sender_qq_mail, smtp_password)# 发送邮件server.sendmail(sender_qq_mail, [receiver_email], message.as_string())print('邮件发送成功')except smtplib.SMTPException as e:print('邮件发送失败', e)finally:# 退出SMTP服务器server.quit()

3. 测试成功

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习鸿蒙基础(7)

一、Watch状态变量更改通知 Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变&#xff0c;可以使用Watch为状态变量设置回调函数。 1、装饰器参数&#xff1a;必填。常量字符串&#xff0c;字符串需要有引号。是(string)> void自定义成员函数的方法…

Spring Transaction 指定事务管理器问题

一&#xff0c;单个数据源&#xff0c;单个事务管理器与Transactional默认事务管理器名称不一致问题 在平时代码中使用声明性事务时&#xff0c;直接在方法上面加注解即可&#xff0c;如下 Transactional(rollbackFor Exception.class) 并没有指定事务管理器&#xff0c;为…

人工智能|推荐系统——搜索引擎广告

原文题目 Dark sides of artificial intelligence: The dangers of automated decision-making in search engine advertising(JASIST,2023) 人工智能的阴暗面:搜索引擎广告自动决策的危险 摘要 随着人工智能应用的日益广泛,搜索引擎供应商越来越多地要求广告商使用基于机…

Linux内核之debugfs_create_dir与debugfs_create_file实例与调用栈流程(三十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Flink集群主节点JobManager启动分析

1.概述 JobManager 是 Flink 集群的主节点&#xff0c;它包含三大重要的组件&#xff1a; ResourceManager Flink集群的资源管理器&#xff0c;负责slot的管理和申请工作。 Dispatcher 负责接收客户端提交的 JobGraph&#xff0c;随后启动一个Jobmanager&#xff0c;类似 Yarn…

动态内存管理+柔性数组

动态内存存在的意义 C语言是一种过程式编程语言&#xff0c;提供了底层访问能力和丰富的功能&#xff0c;广泛应用于操作系统、嵌入式系统、硬件驱动程序等领域。C语言的动态内存管理主要是通过malloc()、calloc()、realloc()和free()这几个标准库函数来实现的。 理解动态内存…

图论- 最小生成树

一、最小生成树-prim算法 1.1 最小生成树概念 一幅图可以有很多不同的生成树&#xff0c;比如下面这幅图&#xff0c;红色的边就组成了两棵不同的生成树&#xff1a; 对于加权图&#xff0c;每条边都有权重&#xff08;用最小生成树算法的现实场景中&#xff0c;图的边权重…

151 shell编程,正则表达式,在C语言中如何使用正则表达式

零&#xff0c;坑点记录&#xff1a;bash 和 dash 的区别&#xff0c;导致的坑点 查看当前用的shell 是啥&#xff0c;用的是/bin/bash hunandedehunandede-virtual-machine:~$ echo $SHELL /bin/bash 当shell 脚本运行的时候&#xff08;后面会学到方法&#xff0c;这里是最…

什么是搜索引擎(SEO)爬虫它们是如何工作的?

什么是搜索引擎&#xff08;SEO&#xff09;爬虫&它们是如何工作的&#xff1f; 你的网站上有蜘蛛&#x1f577;️。别抓狂&#xff01;我说的不是真正的八条腿的蜘蛛&#x1f577;️。 我指的是搜索引擎优化爬虫。他们是实现SEO的机器人。每个主要的搜索引擎都使用爬虫来…

蓝队面经(一)

蓝队面经(一) 文章目录 蓝队面经(一)入侵排查思路windows入侵排查思路Linux入侵排查思路 Linux 如何查看登录日志Windows 和 Linux 的日志文件放在哪里&#xff1f;WindowsLinux Linux 常用排查命令有哪些&#xff1f;Linux 的 Selinux 是什么&#xff1f;如何设置 Selinux&…

第十二章:预处理命令

文章目录 第十二章&#xff1a;预处理命令宏定义无参宏定义带参数的宏定义 文件包含处理 第十二章&#xff1a;预处理命令 作用&#xff1a;由编译预处理程序对程序中的特殊命令作出解释&#xff0c;以产生新的源程序对其进行正式编译 C语言与其他语言的重要区别就是可以使用预…

前端bugs

问题&#xff1a; Failed to load plugin typescript-eslint declared in package.json eslint-config-react-app#overrides[0]: Cannot find module eslint/package.json 解决&#xff1a; google了一晚上还得是chatgpt管用 运行以下命令【同时还要注意项目本身使用的Node版…

Windows 远程访问 Ubuntu Desktop - 虚拟网络控制台 (Virtual Network Console,VNC)

Windows 远程访问 Ubuntu Desktop - 虚拟网络控制台 [Virtual Network Console&#xff0c;VNC] References 1. Desktop Sharing 2. Desktop Sharing Preferences 勾选 允许其他人查看您的桌面 勾选 要求远程用户输入此密码 取消勾选 必须为对本机器的每次访问进行确定 3. 虚拟…

【QT学习】1.qt初识,创建qt工程,使用按钮,第一个交互按钮

1.初识qt--》qt是个框架&#xff0c;不是语言 1.学习路径 一 QT简介 &#xff0c;QTCreator &#xff0c;QT工程 &#xff0c;QT的第一个程序&#xff0c;类&#xff0c;组件 二 信号与槽 三 对话框 四 QT Desiner 控件 布局 样式 五 事件 六 GUI绘图 七 文件 八 …

js的一些底层

数据类型 按照存储方式&#xff0c;JavaScript的数据类型可以分为两种&#xff0c;原始数据类型&#xff08;原始值&#xff09;和引用数据类型&#xff08;引用值&#xff09;。 原始数据类型目前有六种&#xff0c;包括Number、String、Boolean、Null、Undefined、Symb…

若依ruoyi-vue实现excel导入导出

文章目录 Excel注解excel数据导入前端实现后端实现 下载模板前端实现后端实现 excel数据导出前端实现后端实现 自定义标题信息导出用户管理表格新增标题&#xff08;用户列表&#xff09;导入表格包含标题处理方式 自定义数据处理器自定义隐藏属性列导入对象的子对象导出对象的…

网络安全新视角:数据可视化的力量

在当今数字化时代&#xff0c;网络安全已成为各大企业乃至国家安全的重要组成部分。随着网络攻击的日益复杂和隐蔽&#xff0c;传统的网络安全防护措施已难以满足需求&#xff0c;急需新型的解决方案以增强网络防护能力。数据可视化技术&#xff0c;作为一种将复杂数据转换为图…

5-规范设计(下):commit信息风格迥异、难以阅读,如何规范?

我们在做代码开发时&#xff0c;经常需要提交代码&#xff0c;提交代码时需要填写 Commit Message&#xff08;提交说明&#xff09;&#xff0c;否则就不允许提交。 所以在 Go 项目开发时&#xff0c;一个好的 Commit Message 至关重要&#xff1a; 可以使自己或者其他开发人…

mapbox-gl扩展sprites图片

在mapbox-gl.js中&#xff0c;通过在styles中设置sprite和glyphs&#xff0c;实现样式图标和字体的加载。而一旦style加载完成&#xff0c;如果重置地图中的style&#xff0c;则会导致地图全部重新加载&#xff0c;图层的顺序&#xff0c;地图上的要素&#xff0c;都会丢失&…

Halcon3D表面平面度检测-平面差值法

//倾斜平面矫正 https://blog.csdn.net/m0_51559565/article/details/137146179前言 通常我们对表面平面度进行检测时&#xff0c;通常使用2种方式。1&#xff1a;通过大卷积核的高斯滤波进行拟合平面&#xff0c;然后求取拟合平面与3D模型间的点间的距离。2&#xff1a;通过平…