telnet测试前准备
- 163邮箱账号一个,登陆邮箱在设置中开启imap服务,设置授权码,此授权码为telnet是用到的登陆密码。本例用163邮箱账号:test@163.com 密码:xxxxxxxxx。
- 需要打开telnet服务,本例使用的是window10系统,步骤如下图:
imap基本命令了解
Imap协议有四种状态
1.未认证状态
2.认证状态
3.选中状态
4.注销状态
IMAP协议的很多指令只有在处于某种状态下才会有效,下面是四种状态下分别有效的命令
1.在任何状态下都有效的指令(全局命令):CAPABILITY,NOOP,LOGOUT。
2.未认证状态下有效的指令(未认证状态命令):STARTTLS,AUTHENTICATE,LOGIN和全局命令。
3.认证状态下有效的指令(认证状态命令):SELECT,EXAMINE,CREATE,DELETE,RENAME,SUBSCRIBE,UNSUBSCRIBE,LIST,LSUB,STATUS,APPEND和全局命令
4.在选中状态下有效的指令(选中状态指令):CHECK,CLOSE,EXPUNGE,SEARCH,FETCH,STORE,COPY,UID和全局命令、认证状态命令*
开始测试
- 打开cmd命令终端,telnet连接163邮箱imap服务器
输入:telnet imap.163.com 143
-
登陆————LOGIN
LOGIN命令向服务器确认客户端,并带有确认该用户的简单文本型密码C:a001 login test@163.com xxxxxx
S:a001 OK LOGIN completed
注:1.C为客户端输入信息,S为服务端输出信息,下同;
2.输入命令中a001 是客户端为每个命令生成不同的“标签”,下同;
-
列出邮箱中已有的文件夹–LIST
用法:LIST
解释:LIST命令用于列出邮箱中已有的文件夹,有点像操作系统的列目录命令,有两个参数,邮箱路径参数BASE:表示用户登陆目录;第二个参数template:表示希望显示的邮箱名。这个命令可以包含起始的路径位置和需要列出的文件夹所符合的特征,可以使用通配符"*"。
实例:C: a001 login test@163.com xxxxxxxxx
S: a001 OK LOGIN completed
C: a002 list “” *
S: * LIST () “/” “INBOX”
S: * LIST (\Drafts) “/” “&g0l6P3ux-”
S: * LIST (\Sent) “/” “&XfJT0ZAB-”
S: * LIST (\Trash) “/” “&XfJSIJZk-”
S: * LIST (\Junk) “/” “&V4NXPpCuTvY-”
S: * LIST () “/” “&dcVr0mWHTvZZOQ-”
S: a002 OK LIST Completed
-
选中已有邮箱————SELECT
用法:SELECT
解释:SELECT命令让Client选定某个邮箱(Folder),表示即将对该邮箱(Folder)内的邮件作操作。邮箱标志的当前状态也返回给了用户,同时返回的还有一些关于邮件和邮箱的附加信息。
实例:C: a001 login test@163.com xxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 select inbox
S: * 1 EXISTS
S: * 1 RECENT
S: * OK [UIDVALIDITY 1] UIDs valid
S: * FLAGS (\Answered \Seen \Deleted \Draft \Flagged)
S: * OK [PERMANENTFLAGS (\Answered \Seen \Deleted \Draft \Flagged)] Limited
S: a002 OK [READ-WRITE] SELECT completed
注:上述服务器返回信息中的FLAGS中的种类请按下图对号入座
-
只读方式打开邮箱————EXAMINE
用法:EXAMINE
解释:EXAMINE命令以只读方式打开邮箱,参数是需要打开的邮箱的名字,使用EXAMINE命令打开的邮箱不允许对邮件进行改动,因此不能增加或删除邮件的标志。
实例:C: a001 login test@163.com xxxxxxxxxx
S: a001 OK LOGIN completed
C: A002 EXAMINE INBOX
S: * 1 EXISTS
S: * 1 RECENT
S: * OK [UIDVALIDITY 1] UIDs valid
S: * FLAGS (\Answered \Seen \Deleted \Draft \Flagged)
S: * OK [PERMANENTFLAGS (\Answered \Seen \Deleted \Draft \Flagged)] Limited
S: A002 OK [READ-ONLY] Examine completed
-
创建文件夹————CREATE
用法:CREATE
解释:CREATE可以创建指定名字的新邮箱。邮箱名称通常是带路径的文件夹全名。
实例:C: a001 login test@163.com xxxxxxxx
S: a001 OK LOGIN completed
C: a003 create “test”
S: a003 OK mailbox created -
重命名————RENAME
用法:RENAME
解释:RENAME命令可以修改文件夹的名称,它使用两个参数:当前邮箱名和新邮箱名,两个参数的命名符合标准路径命名规则
实例:C: a001 login test@163.com xxxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 rename test newName
S: a002 OK mailbox renamed
-
删除文件夹————DELETE
用法:DELETE
解释:DELETE命令删除指定名字的文件夹。文件夹名字通常是带路径的文件夹全名,当邮箱被删除后,其中的邮件也不复存在
实例:C: a001 login test@163.com xxxxxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 delete newName
S: a002 OK mailbox deleted
-
SUBSCRIBE
解释:subscribe 指定邮箱为活动的C: a001 login test@163.com xxxxxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 subscribe inbox
S: a002 OK mailbox subcribed
-
UNSUBSCRIBE
解释:unsubscribe取消订阅活动邮箱C: a001 login test@163.com xxxxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 unsubscribe inbox
S: a002 OK mailbox unsubscribed
-
LSUB
解释:lsub查看活动邮箱C: a001 login test@163.com xxxxxxxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 subscribe inbox
S: a002 OK mailbox subcribed
S: a003 lsub “” *
S: * LSUB () “/” “INBOX”
S: a003 OK LSUB Completed
- 查询邮箱的当前状态————STATUS
用法:STATUS ( < parameter2> ……)
解释:STATUS命令查询邮箱的当前状态。第一个参数是需要查询的邮箱名,第二个参数是客户机需要查询的项目列表(要查询显示的信息),当在圆括号中。STATUS可以在不使用SELECT命令(打开邮箱)或者EXAMINE(以只读方式打开邮箱)前提下获取邮箱的信息。
实例:
C: a001 login test@163.com xxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 status inbox (messages recent uidnext unseen uidvalidity)
S: * STATUS "inbox" (MESSAGES 1 RECENT 1 UIDVALIDITY 1 UNSEEN 1)
S: a002 OK STATUS completed
-
APPEND
用法:APPEND <date/time>
解释:APPEND命令允许Client上载一个邮件到指定的Folder(文件夹/邮箱)中。命令中包含了新邮件的属性、日期/时间、大小,随后是邮件数据。
实例:C: a001 login test@163.com xxxxxxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 append inbox {310}
S: + Ready for additional command text
C: Date: Mon?? 7 Feb 1994 21:52:25 -0800 (PST)
C: From: Fred Foobar foobar@Blurdybloop.COM
C: Subject: afternoon meeting
C: To: mooch@owatagu.siam.edu
C: Message-Id: B27397-0100000@Blurdybloop.COM
C: MIME-Version: 1.0
C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
C:
C: Hello Joe, do you think we can meet at 3:30 tomorrow?
S: a002 OK [APPENDUID 1 1452558657] APPEND completed
-
LOGOUT
解释:LOGOUT命令使当前登陆用户退出登陆并关闭所有打开的邮箱,任何做了\DELETED标志的邮件都将在这个时候被删除C: a001 login test@163.com xxxxxxxxxxxx
S: a001 OK LOGIN completed
C: a002 logout
S: * BYE IMAP4rev1 Server logging out
S: a002 OK LOGOUT completed
以下命令在选中状态下才能用,实例中会省去登陆、选中步骤的命令
-
CHECK
解释:CHECK命令用来在邮箱设置一个检查点。没有参数。就是IMAP中的sync命令。任何未完成的操作,例如从服务器内存向硬盘写数据,都将会被做完以保持邮箱的一致性状态。该命令确保乃村中的磁盘缓冲数据都被写到了磁盘上。
实例:C: a003 check
S: a003 OK CHECK completed -
CLOSE
解释:CLOSE命令表示Client结束对当前Folder(文件夹/邮箱)的访问,关闭邮箱该邮箱中所有标志为、DELETED的邮件就被从物理上删除。CLOSE没有命令参数。随后可以SELECT另一Folder。
实例:C: A004 CLOSE
S: A004 OK CLOSE completed
-
FETCH
用法:FETCH
解释:FETCH 命令用于读取邮件的文本信息,且仅用于显示的目的。包含两个参数,messageset:表示希望读取的邮件号列表,IAMP服务器邮箱中的每个邮件都有 一个唯一的ID标识,(邮件号列表参数可以是一个邮件号,也可以是由逗号分隔的多个邮件号,或者由冒号间隔的一个范围),IMAP服务器返回邮件号列表中 全部邮件的指定数据项内容。
实例:获取顺序1到10号邮件的uidC: a006 fetch 1:10 (uid)
S: * 1 FETCH (UID 1452558656)
S: * 2 FETCH (UID 1452558657)
S: * 3 FETCH (UID 1452558658)
S: * 4 FETCH (UID 1452558659)
S: * 5 FETCH (UID 1452558660)
S: * 6 FETCH (UID 1452558661)
S: * 7 FETCH (UID 1452558662)
S: * 8 FETCH (UID 1452558663)
S: * 9 FETCH (UID 1452558664)
S: * 10 FETCH (UID 1452558665)
S: a006 OK Fetch completed
数据名参数确定能够被独立返回的邮件的一部分,下面我们看看各参数返回的邮件信息:
ALL:只返回按照一定格式的邮件摘要,包括邮件标志、RFC822.SIZE、自身的时间和信封信息。IMAP客户机能够将标准邮件解析成这些信息并显示出来。
实例:
C: a007 fetch 1 all
S: * 1 FETCH (INTERNALDATE " 5-Jan-2019 15:35:32 +0800" FLAGS (\Seen) ENVELOPE ("Sat, 05 Jan 2019 15:35:08 +0800" "=?UTF-8?B?U29ycnks546w5Zyo5omN5ZKM5L2g6K+06L+Z5LqLLOW4jOacm+ayoeWkquaZmg==?=" (("=?UTF-8?B?572R5piTQ0VP5LiB56OK?=" NIL "netease_ceo" "vip.163.com")) ((NIL NIL "netease_ceo" "vip.163.com")) (("=?UTF-8?B?572R5piTQ0VP5LiB56OK?=" NIL "netease_ceo" "vip.163.com")) (("=?UTF-8?B?572R5piT6YKu566x55So5oi3?=" NIL "user" "netease.com")) NIL NIL NIL NIL) RFC822.SIZE 6296)
S: a007 OK Fetch completed
BODY:只返回邮件体文本格式和大小的摘要信息。IMAP客户机可以识别这些细腻,并向用户显示详细的关于邮件的信息。其实是一些非扩展的BODYSTRUCTURE的信息。
实例:
C: a008 fetch 1 body
S: * 1 FETCH (BODY ((("text" "plain" ("charset" "gb18030") NIL NIL "base64" 54 2)("text" "html" ("charset" "UTF8") NIL NIL "base64" 4454 58) "alternative") "alternative"))
S: a008 OK Fetch completed
FAST:只返回邮件的一些摘要,包括邮件标志、RFC822.SIZE、和自身的时间。
实例:
C: a009 fetch 1 fast
S: * 1 FETCH (INTERNALDATE " 5-Jan-2019 15:35:32 +0800" FLAGS (\Seen) RFC822.SIZE 6296)
S: a009 OK Fetch completed
FULL:同样的还是一些摘要信息,包括邮件标志、RFC822.SIZE、自身的时间和BODYSTRUCTURE的信息。
实例:
C: a010 fetch 1 full
S: * 1 FETCH (INTERNALDATE " 5-Jan-2019 15:35:32 +0800" FLAGS (\Seen) ENVELOPE ("Sat, 05 Jan 2019 15:35:08 +0800" "=?UTF-8?B?U29ycnks546w5Zyo5omN5ZKM5L2g6K+06L+Z5LqLLOW4jOacm+ayoeWkquaZmg==?=" (("=?UTF-8?B?572R5piTQ0VP5LiB56OK?=" NIL "netease_ceo" "vip.163.com")) ((NIL NIL "netease_ceo" "vip.163.com")) (("=?UTF-8?B?572R5piTQ0VP5LiB56OK?=" NIL "netease_ceo" "vip.163.com")) (("=?UTF-8?B?572R5piT6YKu566x55So5oi3?=" NIL "user" "netease.com")) NIL NIL NIL NIL) BODY ((("text" "plain" ("charset" "gb18030") NIL NIL "base64" 54 2)("text" "html" ("charset" "UTF8") NIL NIL "base64" 4454 58) "alternative") "alternative") RFC822.SIZE 6296)
S: a010 OK Fetch completed
BODYSTRUCTUR: 是邮件的[MIME-IMB]的体结构。这是服务器通过解析[RFC-2822]头中的[MIME-IMB]各字段和[MIME-IMB]头信息得出来 的。包括的内容有:邮件正文的类型、字符集、编码方式等和各附件的类型、字符集、编码方式、文件名称等等。
ENVELOPE:信息的信封结构。是服务器通过解析[RFC-2822]头中的[MIME-IMB]各字段得出来的,默认各字段都是需要的。主要包括:自身的时间、附件数、收件人、发件人等。
实例:
C: a011 fetch 1 envelope
S: * 1 FETCH (ENVELOPE ("Sat, 05 Jan 2019 15:35:08 +0800" "=?UTF-8?B?U29ycnks546w5Zyo5omN5ZKM5L2g6K+06L+Z5LqLLOW4jOacm+ayoeWkquaZmg==?=" (("=?UTF-8?B?572R5piTQ0VP5LiB56OK?=" NIL "netease_ceo" "vip.163.com")) ((NIL NIL "netease_ceo" "vip.163.com")) (("=?UTF-8?B?572R5piTQ0VP5LiB56OK?=" NIL "netease_ceo" "vip.163.com")) (("=?UTF-8?B?572R5piT6YKu566x55So5oi3?=" NIL "user" "netease.com")) NIL NIL NIL NIL))
C: a011 OK Fetch completed
FLAGS:此邮件的标志。
实例:
C: a012 fetch 1 flags
S: * 1 FETCH (FLAGS (\Seen))
S: a012 OK Fetch completed
INTERNALDATE:自身的时间。
实例:
C: a013 fetch 1 internaldate
S: * 1 FETCH (INTERNALDATE " 5-Jan-2019 15:35:32 +0800")
S: a013 OK Fetch completed
RFC822.SIZE:邮件的[RFC-2822]大小
实例:
C: a014 fetch 1 RFC822.SIZE
S: * 1 FETCH (RFC822.SIZE 6296)
S: a014 OK Fetch completed
RFC822.HEADER:在功能上等同于BODY.PEEK[HEADER]
RFC822:功能上等同于BODY[]。
RFC822.TEXT:功能上等同于BODY[TEXT]
UID:返回邮件的UID号,UID号是唯一标识邮件的一个号码。
C: a016 fetch 1 uid
S: * 1 FETCH (UID 1452558656)
S: a016 OK Fetch completed
BODY[section] <>:返回邮件的中的某一指定部分,返回的部分用section来表示,section部分包含的信息通常是 代表某一部分的一个数字或者是下面的某一个部分:,HEADER.FIELDS, HEADER.FIELDS.NOT, MIME, and TEXT。如果section部分是空的话,那就代表返回全部的信息,包括头信息。
BODY[HEADER]返回完整的文件头信息。
BODY[HEADER.FIELDS ()]:在小括号里面可以指定返回的特定字段。
C: a018 fetch 1 body[header.fields (subject)]
S: * 1 FETCH (BODY[HEADER.FIELDS (SUBJECT)] {67}
S: Subject: =?gbk?b?U29ycnksz9bU2rLFus3E48u11eLKwizPo837w7vMq83t?=
S: )
S: a018 OK Fetch completed
BODY[HEADER.FIELDS.NOT ()]:在小括号里面可以指定不需要返回的特定字段。
BODY[MIME]:返回邮件的[MIME-IMB]的头信息,在正常情况下跟BODY[HEADER]没有区别。
BODY[TEXT]:返回整个邮件体,这里的邮件体并不包括邮件头。
现在我们遇到了一个问题,如果我们要单独提取邮件的附件怎么办?
通过以上的命令我们是无法做到的,但是我们别忘了在section部分还有其他的方式可以来表示我们要提取的邮件的部分,那就的通过区段数来表示。那下面就让我们来看看什么是区段数。
每个邮件都至少有一个区段数,Non-[MIME-IMB]型的邮件和non-multipart [MIME-IMB]的邮件是没有经过MIME编码之后的信息的,那这样的信息只有一个区段数1。多区段型的信息被编排成一个连续的区段数,这和实际信息 里出现的是一样的。如果一个特定的区段有类型信息或者是多区段的,一个MESSAGE/RFC822类型的区段也含有嵌套的区段数,这些区段数是指向这些 信息区段的信息体的。
说了那么多拗口的,现在我们讲的更简单易懂一些。在一个邮件体里面,区段数1代表的邮件的正文,区段数二代表的是第一个附 件,区段数三代表的是第二个附件,以此类推。在这些区段里,如果有哪个区段又是多区段的,比如2区段的内容格式是mulipart或者是 MESSAGE/RFC822类型的,那么这个区段又嵌套了多个子区段,嵌套的各子区段是用2.1,2.2……等等表示,类似,如果2.1又有嵌套,那么 还会有2.1.1,2.1.2等区段。这样的嵌套是没有限制的
实例:抓取4号邮件的的前12字节
C: a003 fetch 4 body[1]<0.12>
S: * 4 FETCH (BODY[1]<0> "DQoNCg0KDQps")
S: a003 OK Fetch completed
-
STORE
用法:STORE
解释:STORE 命令用于修改指定邮件的属性,包括给邮件打上已读标记、删除标记,等等。STORE命令当前只有两个数据项类型可用,FLAGS:表示邮件的一组标志; FLAGS.SLIENT,表示一组邮件的标志,通过在两种数据项前加上加号或者减号可以进一步改变它们的执行情况,加号表示数据项的值添加到邮件中,减 号表示将数据项的值从邮件中删除
实例:C: a005 store 2:3 +flags (\Seen)
S: * 2 FETCH (FLAGS (\Seen))
S: * 3 FETCH (FLAGS (\Seen))
S: a005 OK STORE completed -
COPY
用法:COPY
解释:COPY命令可以把邮件从一个邮箱复制到另一个邮箱,两个参数:mail id是希望从活动邮箱中复制的邮件的标号,mailboxname是希望邮件被复制到的邮箱。
实例:C: a003 copy 1:2 trash
S: a003 OK [COPYUID 4 1452558656:1452558657 1489636535:1489636536] COPY completed -
UID
解释:UID 命令和FETCH、COPY、STORE命令或者SEARCH命令一起使用,它允许这些命令使用邮件的UID号而不是在邮箱中的顺序号。UID号是唯一标 识邮件系统中邮件的32位证书。通常这些命令都使用顺序号来标识邮箱中的邮件,使用UID可以使IMAP客户机记住不同IMAP会话中的邮件
实例:获取 uid ,size,标志
C: a003 fetch 1:5 (uid)
S: * 1 FETCH (UID 1452558656)
S: * 2 FETCH (UID 1452558657)
S: * 3 FETCH (UID 1452558658)
S: * 4 FETCH (UID 1452558659)
S: * 5 FETCH (UID 1452558660)
S: a003 OK Fetch completed
C: a004 uid fetch 1452558656,1452558657 (uid rfc822.size flags)
S: * 1 FETCH (UID 1452558656 FLAGS (\Seen) RFC822.SIZE 6296)
S: * 2 FETCH (UID 1452558657 FLAGS (\Seen) RFC822.SIZE 472)
S: a004 OK Fetch completed
实例:邮件设置为未读
C: a005 uid store 1452558656 -flags.silent <seen>
S: a005 OK STORE completed
实例:拷贝入删除箱
C: a006 uid copy 1452558656 "trash"
S: a006 OK [COPYUID 4 1452558656 1489636537] COPY completed
-
SEARCH
用法:SEARCH [CHARSET specification] (search criteria)
解释:search命令可以根据搜索条件在活动状态的邮箱中搜索邮件,并返回邮件号(顺序号)。字符集标志参数[CHARSET specification]由CHARSET和注册的字符集标志符组成,缺省的标志符是US-ASCⅡ,所以该参数常省略。search criteria:查询条件参数,明确查询的关键字和值。
查询关键字有几十种搜索的关键字有如下几种:
ALLC: a003 search all
S: * SEARCH 1 2 3 4 5 6 7 8 9 10 11
S: a003 OK SEARCH completed
邮件中所有邮件;ANDing的默认初始关键词。
ANSWERED
带有/Answered标记位的邮件。
C: a004 search answered
S: * SEARCH
S: a004 OK SEARCH completed
BCC
在信封结构的BCC域包含有指定字符串的邮件
C: a005 search bcc "liu"
S: * SEARCH
S: a005 OK SEARCH completed
BEFORE
实际日期(忽视时间和时区)早于指定日期的邮件。
C: a006 search before 11-may-2019
S: * SEARCH 1 2 3 4 5 6 7 8 9 10 11
S: a006 OK SEARCH completed
BODY
在邮件的主体域包含有指定字符串的邮件。
C: a007 search body hello
S: * SEARCH
S: a007 OK SEARCH completed
CC
在信封结构的CC域包含有指定字符串的邮件。
DELETED
带有/Deleted标记位的邮件。
C: aoo8 search deleted
S: * SEARCH
S: aoo8 OK SEARCH completed
DRAFT
带有/Draft标记位的邮件。
C: a010 search draft
S: * SEARCH
S: a010 OK SEARCH completed
FLAGGED
带有/Flagged标记位的邮件。
FROM
在信封结构的FROM域包含有指定字符串的邮件。
HEADER
带有一个含指定field-name([RFC-2822]中定义)的头部、且在该头部(它跟在colon之后)的文本中包含指定字符串的邮 件。如果将要检索的字符串(参数中的string)长度为零,那么,它将匹配带有一个含指定field-name、内容可有可无的头部行的所有邮件。
KEYWORD
带有指定关键词标记位的邮件。
LARGER
带有一个[RFC-2822](定义)的、大于指定字节数的大小的邮件。
C: a013 search larger 20
S: * SEARCH 1 2 3 4 5 6 7 8 9 10 11
S: a013 OK SEARCH completed
NEW
带有/Recent标记位,但不带有/Seen标记的邮件。它在功能上等效于“(RECENT UNSEEN)”。
NOT
不符合指定检索关键词的邮件。
C: a015 search not from joy
S: * SEARCH 1 2 3 4 5 6 7 8 9 10 11
S: a015 OK SEARCH completed
-----------后续关键字查询使用方式雷同--------
OLD
不带有/Recent标记位的邮件。它在功能上等效于“NOT RECENT”(与“NOT NEW”相反)。
ON
实际日期(忽视时间和时区)在指定日期的邮件。
OR
符合任意一个检索关键词的邮件。
RECENT
带有/Recent标记位的邮件。
SEEN
带有/Seen标记位的邮件。
SENTBEFORE
[RFC-2822]Date: header(忽视时间和时区)早于指定日期的邮件。
SENTON
[RFC-2822]Date: header (忽视时间和时区)在指定日期的邮件。
SENTSINCE
[RFC-2822]Date: header (忽视时间和时区)在指定日期或者晚于指定日期的邮件。
SINCE
实际日期(忽视时间和时区)在指定日期或者晚于指定日期的邮件。
SMALLER
带有一个[RFC-2822]的、小于指定字节数大小的邮件。
SUBJECT
在信封结构的SUBJECT域含有指定字符串的邮件。
TEXT
在邮件的头部或者主体含有指定字符串的邮件。
TO
在信封结构的TO域含有指定字符串的邮件。
UID
带有指定唯一标识符集相应的唯一标识符的邮件。序列集顺序排列是允许的。
UNANSWERED
不带有/Answered标记位的邮件。
UNDELETED
不带有/Deleted标记位的邮件。
UNDRAFT
不带有/Draft标记位的邮件。
UNFLAGGED
不带有/Flagged标记位的邮件。
UNKEYWORD
不带有指定关键词标记位的邮件。
UNSEEN
不带有/Seen标记位的邮件。
-------下面两个命令任何状态都可用-----
-
CAPABILITY
解释:CAPABILITY命令请求返回IMAP服务器支持的功能列表,服务器收到客户机发送的CAPABILITY命令后将返回该服务器所支持的功能。无参数C: a001 capability
S: * CAPABILITY IMAP4rev1 XLIST SPECIAL-USE ID LITERAL+ STARTTLS XAPPLEPUSHSERVICE
UIDPLUS X-CM-EXT-1
S: a001 OK CAPABILITY completed
-
NOOP
解释:NOOP命令什么也不做,用来向服务器发送自动命令,防止因长时间处于不活动状态而导致连接中断,服务器对该命令的响应始终为肯定。无参数C: A001 NOOP
S: A001 OK NOOP completed
-----下面连个命令通过Telnet无法测试,仅仅给出解释--------
- STARTTLS
解释:使用STARTTLS命令可以加密传输邮件内容,因为我使用的是telnet不支持加密传输,所以使用明文登录 ,telnet无法模拟。
- AUTHENTICATE
解释:AUTHENTICATE命令向服务器指出一个[SASL]认证机制。