`
gaojingsong
  • 浏览: 1210816 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【SMTP协议介绍】

阅读更多

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。



 

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 

 

 

它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。跟大多数应用层协议一样,SMTP也存在两个 端:在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服 务器在向其他邮件服务器发送邮件消息时,它是作为SMTP客户在运行。

 

SMTP协议与人们用于面对面交互的礼仪之间有许多相似之处。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务 器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不在工作,SMTP客户就等待一段时间后再尝试建立该连接。SMTP客户和服务器先执行一些应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先自我介绍一下。 在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍完毕之后,客户发出邮件消息

 



 

SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 

增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

 

 

工作机制

SMTP通常有两种工作模式:发送SMTP和接收SMTP。具体工作方式为:发送SMTP在接到用户的邮件请求后,判断此邮件是否为本地邮件,若是直接投送到用户的邮箱,否则向dns查询远端邮件服务器的MX纪录,并建立与远端接收SMTP之间的一个双向传送通道,此后SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。一旦传送通道建立,SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK应答。SMTP发送者再发出RCPT命令确认邮件是否接收到。如果SMTP接收者接收,则返回OK应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重复多次。当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK应答即可。



 

 

SMTP邮件传输

SMTP邮件传输简单地可分为三步。

第一步,SMTP客户机(邮件发送者)发出MAIL命令给出发送人的电子邮件地址。

第二步, SMTP客户机发出一个或多个RCPT命令给出接收人的电子邮件地址。

第三步, SMTP客户机发出DATA命令,然后开始传输邮件消息体。

最后, SM TP客户机发出<CRLF >.<CRLF >标志邮件消息体传输的结束。

 

 

 

工作过程

简单邮件传输协议(SMTP)是一种基于文本的电子邮件传输协议,是在因特网中用于在邮件服务器之间交换邮件的协议。SMTP是应用层的服务,可以适应于各种网络系统。

SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。

SMTP要经过建立连接、传送邮件和释放连接3个阶段。具体为:

(1)建立TCP连接。

(2)客户端向服务器发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令。

(3)服务器端以OK作为响应,表示准备接收。

(4)客户端发送RCPT命令。

(5)服务器端表示是否愿意为收件人接收邮件。

(6)协商结束,发送邮件,用命令DATA发送输入内容。

(7)结束此次发送,用QUIT命令退出。

SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。

  • 大小: 46.8 KB
  • 大小: 23.6 KB
  • 大小: 20.4 KB
0
0
分享到:
评论

相关推荐

    19 Rust网络编程,SMTP协议介绍 通俗易懂,系统全面的学习 下一节20 Rust网络编程,发送邮件示例

    19 Rust网络编程,SMTP协议介绍 通俗易懂,系统全面的学习。下一节20 Rust网络编程,发送邮件示例

    18 Rust网络编程,使用gRPC示例讲解 通俗易懂,系统全面的学习 下一节19 Rust网络编程,SMTP协议介绍

    18 Rust网络编程,使用gRPC示例讲解 通俗易懂,系统全面的学习。下一节19 Rust网络编程,SMTP协议介绍

    提供发送电子邮件的SMTP协议(23KB)

    `SMTP.GIF`可能是关于SMTP协议的图形示例,而`SMTP.HTM`可能是包含SMTP协议介绍的HTML文档。 在实际编程中,开发人员可以使用这些源代码作为参考,了解如何在C++环境中实现SMTP邮件发送功能。例如,`Smtp.cpp`可能...

    易语言简单SMTP协议

    SMTP协议是互联网上电子邮件系统的核心,它定义了邮件服务器之间交换邮件的规则。通过SMTP,用户可以将邮件从一个服务器发送到另一个服务器,最终到达收件人的邮箱。易语言实现SMTP协议主要涉及以下几个关键概念: ...

    SMTP协议电子邮件传送剖析

    本文介绍了如何使用SMTP协议在程序中实现电子邮件的发送。通过直接使用SMTP命令并处理服务器的应答码,可以在各种开发环境中构建强大的邮件发送功能。了解SMTP协议的基本原理和具体实现方法,对于开发支持邮件发送...

    smtp协议中文PDF

    通过上述对SMTP协议的详细介绍,我们可以了解到其工作原理、基本命令以及扩展功能。随着网络安全技术的不断发展,未来的SMTP协议将会更加安全、可靠,更好地服务于全球范围内的电子邮件通信需求。

    易语言简单SMTP协议源码

    SMTP(Simple Mail Transfer Protocol)是互联网上用于发送电子邮件的...但以上内容为易语言实现SMTP协议的一般性介绍,可作为了解该主题的基础。如果你能提供源码文件,我可以进一步深入解释其工作原理和关键代码。

    smtp协议分析 实验报告

    ### SMTP协议分析实验知识点 #### 一、SMTP协议概述 简单邮件传输协议(Simple Mail Transfer Protocol, SMTP)是用于在互联网上发送电子邮件的标准协议之一。SMTP最初由Jon Postel和Raymond L. Moon在1982年定义,并...

    SMTP协议分析.doc

    ### SMTP协议分析 #### 1. SMTP概述 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是互联网中用于电子邮件发送的基本协议之一。它的工作原理基于客户端/服务器模型(C/S模式),主要用于从发件人的...

    基于SMTP的邮件发送端

    SMTP协议介绍 - **SMTP**(Simple Mail Transfer Protocol)是一种用于在Internet上发送电子邮件的应用层协议。它最初由RFC 821定义,并通过RFC 5321进行了更新。 - SMTP支持基本的邮件发送功能,包括将邮件从发件人...

    易语言源码易语言简单SMTP协议源码.rar

    易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码易语言简单SMTP协议源码.rar 易语言源码...

    基于SMTP协议的邮件发送客户端程序设计说明书

    核心代码中,关键类`SmtpMail`用于实现SMTP协议的邮件发送,它可能包含多个子类或成员,如委托和事件来处理邮件发送过程的监控,确保邮件发送的正确性和可靠性。 在程序设计中,`SmtpMail`类会封装SMTP连接、认证、...

    Wireshark抓包分析POP3和SMTP协议.doc

    Wireshark 抓包分析 POP3 和 SMTP 协议 Wireshark 是一个功能强大且免费的网络协议 analyzer,能够抓包并分析各种网络协议。在这个实验中,我们将使用 Wireshark 抓包分析 POP3 和 SMTP 协议。 一、POP3 协议...

    smtp协议代码示例集合

    在C++编程环境中,实现SMTP协议通常涉及到以下几个关键知识点: 1. **SMTP连接**:首先,你需要建立一个TCP连接到SMTP服务器。这通常通过`socket`编程实现,使用`connect()`函数连接到服务器的特定端口(通常是25或...

    计算机网络课程设计报告:基于SMTP协议的模拟邮件系统

    **计算机网络课程设计报告:基于SMTP协议的模拟邮件系统** 本次课程设计的目标是构建一个模拟邮件系统,该系统基于SMTP(Simple Mail Transfer Protocol)协议,实现了邮件的发送和接收功能。设计内容包括用户注册...

    smtp协议的工作原理

    SMTP协议的工作原理涉及多个关键步骤和概念,下面将对其进行详细的解析。 ### 1. SMTP协议的基本工作流程 SMTP协议通过TCP协议在端口25上进行数据传输,它主要由以下步骤组成: 1. **建立连接**:客户端(通常是...

    使用java简单实现基于smtp协议的邮件收发

    Java 实现基于 SMTP 协议的邮件收发是一项常见的任务,尤其在开发自动化通知系统或者服务端消息传递时。SMTP(Simple Mail Transfer Protocol)是一种互联网标准,用于在邮件服务器之间发送电子邮件。以下将详细介绍...

    基于SMTP协议和POP3协议的邮件收发客户端.7z.zip

    实验报告请私聊-升级版见其它资源 关于要求:编程实现通过用户界面,用户登录信箱认证过程(含base64方式...这意味着除了使用SMTP协议发送邮件外,还需设计使用POP3协议接收邮件,在接收的时候采用黑白名单过滤的功能。

    C++ SMTP协议发送邮件模块(支持身份验证)

    在这个C++实现的SMTP模块中,我们关注的重点是如何通过编程的方式利用SMTP协议来发送邮件,特别是涉及到了身份验证这一重要环节。 首先,SMTP协议是基于TCP/IP的,它定义了客户端与邮件服务器之间的通信规则。在...

    smtp 协议实例

    在这个"smtp 协议实例"中,我们可以看到一个C++实现的SMTP邮件发送程序,这对于理解和实践SMTP协议以及C++编程具有很高的价值。 首先,我们来看核心文件`SMTP.cpp`,它可能包含了实现SMTP会话的主要逻辑。在SMTP...

Global site tag (gtag.js) - Google Analytics