IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 使用Python的smtplib模块发送简单邮件 -> 正文阅读

[网络协议]使用Python的smtplib模块发送简单邮件

??SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知[参考文献5]。Python中的smtplib模块支持创建SMTP 客户端会话对象,能将邮件发送到互联网上任何带有SMTP或ESMTP监听程序的计算机。本文学习并测试参考文献1中的发送邮件示例代码,测试使用smtplib模块发送简单的电子邮件。
??smtplib模块支持普通连接和加密连接SMTP服务器,前者使用SMTP类,后者使用SMTP_SSL类。测试代码主要使用的函数如下表所示:

序号类或函数说明
1MIMEText本类用于创建主类型为 text 的 MIME 对象,测试代码中用于保存邮件主体内容,同时保存邮件的其它信息,如发件人、收件人、邮件标题等
2MIMEText .as_string所属基类Message中的函数,以展平的字符串形式返回整个消息对象。
3SMTP_SSL加密连接SMTP服务器,默认端口为465
4SMTP_SSL.sendmail发送邮件函数,最重要的参数包括发件人地址,收件人地址及消息字符串。
5SMTP_SSL.login登录到需要认证的SMTP服务器,输入参数是用户名和授权码。
6SMTP_SSL. quit终结 SMTP 会话并关闭连接

??测试代码主要来自参考文献1,在这里主要是列出程序代码及程序执行结果:

# coding=utf-8

import smtplib
from email.mime.text import MIMEText

sender='XXXXXXXXX@qq.com'
password='NNNNNNNNNNN'
to='YYYYYYYYYY@qq.com'

def mail():
    ret=True
    try:
        msg=MIMEText('smtp发送邮件测试','plain','utf-8')
        msg['From']=sender
        msg['To']=to
        msg['Subject']='通过SMTP协议发送邮件测试'

        server=smtplib.SMTP_SSL('smtp.qq.com')
        server.login(sender,password)

        server.sendmail(sender,to,msg.as_string())
        print(msg.as_string())
        server.quit()

    except Exception as e:
        ret=False
        print(e)
    return ret
                     

if mail():
    print('邮件发送成功')
else:
    print('邮件发送失败')

在这里插入图片描述

??除了参考文献1中的测试代码,参考文献2中也有类似的测试代码,唯一的区别是参考文献2中的SMTP示例连接SMTP服务器后,没有调用login函数登录服务器,而是直接调用sendmail函数发送邮件,此时会发送失败,并报下面的错误。参考文献1中给出的解释是使用126或QQ等免费邮箱的话,发送Email前必须先登录到自己的Email,才能利用Email发送邮件。事实也确实如此。
在这里插入图片描述
??本文学习了使用smtplib模块发送简单邮件,后续还会继续学习参考文献1中的发送带附件的电子邮件。

参考文献:
[1]Python从菜鸟到高手
[2]https://docs.python.org/zh-cn/3/library/smtplib.html?highlight=smtplib
[3]https://github.com/python/cpython/blob/3.11/Lib/smtplib.py
[4]https://datatracker.ietf.org/doc/html/rfc821
[5]https://baike.baidu.com/item/SMTP/175887?fromtitle=smtp%E5%8D%8F%E8%AE%AE&fromid=421587&fr=aladdin

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:55:47  更:2022-11-05 00:57:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 5:35:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码