SMTP 命令简介
什么是 SMTP
SMTP (Simple Mail Transfer Protocol) : 电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请求/响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表示返回状态的三位数字代码。SMTP 在 TCP 协议 25 端口监听连接请求。
什么是 ESMTP
ESMTP (Extended SMTP),顾名思义,扩展 SMTP 就是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时, 服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与 SMTP 方式没有两样。
SMTP 命令
SMTP 命令包括:
HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL FROM 命令中指定的地址是发件人地址
RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。
DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应 OK
RSET 重置会话,当前传输被取消
QUIT 结束会话
连接 Winmail Server 使用 SMTP 命令发送邮件
例如:安装 Winmail 的邮件服务器IP是192.168.0.1 (蓝色字体内容由客户端输入,红色字体内容是服务返回的)
telnet 192.168.0.1 25 --------------------------------------- 使用 telnet 命令连接服务器 25 端口
Trying 192.168.0.1... --------------------------------------- 正在连接服务器 25 端口
Connected to 192.168.0.1. ----------------------------------- 连接服务器 25 端口成功
220 Winmail Mail Server ESMTP ready ------------------------- 显示服务器的标识名称 (Winmail 管理工具->高级设置->系统参数->基本参数中可更改)
helo cnu.com ------------------------------------------------ 向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令
250 Winmail Mail Server
ehlo cnu.com ------------------------------------------------ ESMTP 命令,发信需要认证。
250-Winmail Mail Server
250-PIPELINING
250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250-SIZE 20480000
250 8BITMIME
auth login ------------------------------------------------- 进行用户身份认证
334 VXNlcm5hbWU6
Y29zdGFAYW1heGl0Lm5ldA== ----------------------------------- BASE64 加密后的用户名
334 UGFzc3dvcmQ6
MTk4MjIxNA== ----------------------------------------------- BASE64 加密后的密码
235 auth successfully -------------------------------------- 身份认证成功
(535 auth failure ------------------------------------------ 身份认证失败)
发到本系统中域名下的账户可跳过身份认证。
mail from: <test1@domain.com> ------------------------------ mail from 地址 test1@domain.com
250 ok ----------------------------------------------------- 命令执行成功
rcpt to: <test2@domain.com> -------------------------------- 递送给地址 test2@domain.com
250 ok ----------------------------------------------------- 命令执行成功
data ------------------------------------------------------- 数据传输初始化
354 go ahead ----------------------------------------------- 开始传输数据
From: test1@domain.com
To: test2@domain.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
Hi, test2
This is a test mail, you don't reply it.
.
------------------------------------------------------------ 数据内容,包括BASE64加密后的邮件内容, 以 CRLF.CRLF 结束数据传输
250 ok message accepted for delivery ----------------------- 命令执行成功
quit ------------------------------------------------------- 结束会话
221 Winmail Mail Server
Connection closed by foreign host .------------------------- 断开连接
POP3 命令简介
什么是 POP3
POP3 (Post Office Protocol 3) 即邮局协议的第 3 个版本,它规定怎样将个人计算机连接到 Internet 的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的 第一个离线协议标准, POP3 允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循 POP3 协议的接收邮件服务器,用来接收电子邮件的。
POP3 命令
POP3 命令包括:
USER username 认证用户名
PASS password 认证密码认证,认证通过则状态转换
APOP name,digest 认可一种安全传输口令的办法,执行成功导致状态转换,请参见 RFC 1321 。
STAT 处理请求 server 回送邮箱统计资料,如邮件数、 邮件总字节数
UIDL n 处理 server 返回用于该指定邮件的唯一标识, 如果没有指定,返回所有的。
LIST n 处理 server 返回指定邮件的大小等
RETR n 处理 server 返回邮件的全部文本
DELE n 处理 server 标记删除,QUIT 命令执行时才真正删除
RSET 处理撤消所有的 DELE 命令
TOP n,m 处理 返回 n 号邮件的前 m 行内容,m 必须是自然数
NOOP 处理 server 返回一个肯定的响应
QUIT 希望结束会话。如果 server 处于"处理" 状态,则现在进入"更新"状态,删除那些标记成删除的邮件。如果 server 处于"认可"状态,则结束会话时 server 不进入"更新"状态 。
使用 telnet 连接 Winmail Server 收信
例如:安装 Winmail 的邮件服务器 IP 是 192.168.0.1(蓝色字体内容由客户端输入,红色字体内容是服务返回的)
telnet 119.119.119.212 110 ----------------------------- 使用 telnet 命令连接服务器 110 端口
Trying 119.119.119.212... ------------------------------ 正在连接服务器 110 端口
Connected to 119.119.119.212. -------------------------- 连接服务器 110 端口成功
+OK Winmail Mail Server POP3 ready
user username ------------------------------------------ 输入用户名, username 为具体的用户名
+OK ---------------------------------------------------- 执行命令成功
pass password ------------------------------------------ 输入用户密码,password 为具体的密码
+OK 2 messages ----------------------------------------- 密码认证通过
(-ERR authorization failed ----------------------------- 密码认证失败)
stat --------------------------------------------------- 邮箱状态
+OK 2 6415 --------------------------------------------- 2 为该信箱总邮件数,6415 为总字节数
list --------------------------------------------------- 列出每封邮件的字节数
+OK ---------------------------------------------------- 执行命令成功,开始显示,左边为邮件的序号,右边为该邮件的大小
1 537 -------------------------------------------------- 第 1 封邮件,大小为 537 字节
2 5878 ------------------------------------------------- 第 2 封邮件,大小为 5878 字节
.
top 1 -------------------------------------------------- 接收第 1 封邮件
+OK ---------------------------------------------------- 接收成功, 返回第 1 封邮件头
Return-Path: <test1@look.com>
Delivered-To: test2@look.com
Received: (winmail server invoked for smtp delivery); Mon, 25 Oct 2004 14:24:27 +0800
From: test1@look.com
To: test2@look.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
.
retr 1 ------------------------------------------------- 接收第 1 封邮件
+OK ---------------------------------------------------- 接收成功, 返回第 1 封邮件全部内容
Return-Path: <test1@look.com>
Delivered-To: test2@look.com
Received: (winmail server invoked for smtp delivery); Mon, 25 Oct 2004 14:24:27 +0800
From: test1@look.com
To: test2@look.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
Hi, test2
This is a test mail, you don't reply it.
.
dele 1 ------------------------------------------------- 删除第 1 封邮件
+OK ---------------------------------------------------- 删除成功
dele 2 ------------------------------------------------- 删除第 2 封邮件
+OK ---------------------------------------------------- 删除成功
quit --------------------------------------------------- 结束会话
+OK ---------------------------------------------------- 执行命令成功
分享到:
相关推荐
在“pop3.c”源代码中,可能包含了使用`libnids`库来监听和解析POP3会话的代码片段,包括识别和处理各种POP3命令,以及可能的错误处理和日志记录。通过这个程序,开发者可以深入理解POP3协议的工作原理,也可以用于...
POP3、IMAP4和SMTP是互联网上电子邮件通信的核心协议,它们各自负责电子邮件的不同环节。 首先,SMTP(Simple Mail Transfer Protocol)是邮件传输协议,主要处理邮件的发送。SMTP允许用户从他们的邮件客户端向邮件...
描述pop3和smtp的通信命令及各种响应码含义以及MIME的数据格式。
- 可选操作:根据需求,可以选择标记邮件为已读(DELE命令)或删除邮件(RSET或QUIT命令)。 - 断开连接:最后使用Quit方法断开与服务器的连接。 5. www.pudn.com.txt文件可能包含的是关于该代码示例的介绍或使用...
开发过程中,需要编写代码来建立和管理与邮件服务器的连接,执行POP3命令(如USER、PASS、LIST、RETR等)来获取邮件,以及使用SMTP命令(如EHLO、AUTH、MAIL、RCPT、DATA等)发送邮件。 在实际项目中,还需要考虑...
- SMTP命令模块:构造和发送SMTP命令,如HELO、AUTH、MAIL FROM、RCPT TO、DATA等。 - 数据传输模块:将邮件内容转化为SMTP服务器接受的格式并发送。 - 错误处理模块:捕获和处理可能出现的网络或协议错误。 在...
2. **JavaMail API**:JavaMail API是Java中用于处理邮件的库,提供了与SMTP、POP3、IMAP等邮件协议交互的接口。在SMTP发送邮件时,主要用到`Session`、`Transport`和`Message`等类。 3. **SMTP服务器实现**:一个...
Wireshark 抓包分析 POP3 和 SMTP 协议 Wireshark 是一款功能强大的网络抓包分析工具,通过对 POP3 和 SMTP 协议的抓包分析,可以深入理解电子邮件的发送和接收过程。本文将通过 Wireshark 抓包分析 POP3 和 SMTP ...
在实现过程中,我们可能需要使用Python的smtplib库来处理邮件内容的编码和解码,以及对SMTP命令的响应。 文件名为“testWebMail”的可能是一个测试Web邮件应用,用于与我们模拟的POP3和SMTP服务器进行交互。这个...
Wireshark 抓包分析 POP3 和 SMTP 协议 Wireshark 是一个功能强大且免费的网络协议 analyzer,能够抓包并分析各种网络协议。在这个实验中,我们将使用 Wireshark 抓包分析 POP3 和 SMTP 协议。 一、POP3 协议...
开发者需要理解TCP/IP协议栈,处理输入输出流,解析SMTP命令,以及生成响应。 3. **SMTP服务器**:SMTP服务器通常监听25号端口,等待客户端发起连接请求。当收到邮件发送请求时,服务器会检查发件人地址的有效性,...
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是互联网上用于电子邮件传输的两个核心协议。在本文中,我们将深入探讨这两个协议的工作原理、它们在Web服务中的角色以及如何通过源...
// 发送SMTP命令 send(sock, "HELO example.com\r\n", strlen("HELO example.com\r\n"), 0); // ...其他SMTP命令 // 关闭连接 close(sock); } ``` C语言版本的实现类似,但需要注意字符串处理和内存管理。 ...
2. **POP3协议实现**:在Java中实现POP3服务器,我们需要理解并实现POP3的各个命令,如`CAPA`(能力列表)、`USER`(用户认证)、`PASS`(密码验证)、`LIST`(邮件列表)、`RETR`(获取邮件内容)、`DELE`(标记...
关键的SMTP命令包括: 1. **HELO**/**EHLO**:向服务器打招呼并识别自己。 2. **MAIL FROM:**:指定发件人地址。 3. **RCPT TO:**:指定收件人地址。 4. **DATA**:开始传输邮件内容。 5. **.` `**(空行):结束...
2. **SMTP命令序列**:正确构造并发送SMTP命令,如HELO/EHLO、MAIL FROM、RCPT TO和DATA。 3. **加密与安全**:如果SMTP服务器要求使用安全连接(如SSL/TLS),则需要实现相应的加密层。 4. **错误处理**:处理...
SMTP命令通常包括HELO/EHLO(与服务器建立连接)、MAIL FROM(指定发件人地址)、RCPT TO(指定收件人地址)、DATA(发送邮件内容)和QUIT(结束会话)等。通过SMTP,用户可以通过本地的邮件客户端软件或Webmail服务...
在实际应用中,SMTP常与POP3(Post Office Protocol version 3)或IMAP4(Internet Message Access Protocol version 4)配合使用,前者用于接收邮件,后者则允许用户在服务器上管理邮件。理解这些协议对于开发邮件...
在分析POP3和SMTP协议时,Wireshark能够捕获并解析这些协议的数据包,帮助我们理解邮件系统的运作机制。 POP3(Post Office Protocol version 3)协议是用于从邮件服务器接收邮件的协议。它允许用户下载服务器上的...
在IT领域,电子邮件系统是日常通信的重要组成部分,而POP3(Post Office Protocol version 3)和SMTP(Simple Mail Transfer Protocol)则是实现电子邮件收发的核心协议。这个VC(Visual C++)源码示例提供了一个...