USER <用户名>
用USER命令输入用户信箱名,<用户名>一般为用户电子邮件地址@前面的部分,如地址为[email protected],则<用户名>为Someone,命令执行后将显示一些信息,并提示用户输入密码。
PASS <密码>
用PASS命令输入用户信箱密码。
CAPA
输入CAPA命令,返回pop3服务器支持的扩展功能列表
如:
authorization状态下(即没有用户登录login)
capa
+OK
CAPA
TOP
UIDL
RESP-CODES
PIPELINING
USER
SASL PLAIN LOGIN
.
transaction状态下(用户已经登录)
user [email protected]
+OK
pass 111111
+OK Logged in.
capa
+OK
CAPA
TOP
UIDL
RESP-CODES
PIPELINING
.
7、user [email protected]中的邮局暂停
auth 失败
8、user [email protected]中的邮箱为删除状态
auth 失败
STAT
输入STAT命令,服务器将告诉用户共有多少封信件在信箱中。
如:
stat
+OK 19 99434(19为该邮箱的邮件总封数,99434为邮件的总字节数)
注:邮件封数与数据库表查询结果一致
mysql> select count(*) from uisdb.uis_email_list where maildir_id=3;
LIST
显示信件个数、序号和每个信件的大小。
如:列出所有邮件
list
+OK 19 messages:
1 9125
2 9124
3 364
4 6119
5 6119
.
或者列出某封指定邮件
LIST 21
+OK 21 709
或者指定的邮件实际不存在
LIST 22
-ERR There's no message 22.
或者列出已被打上删除标记的邮件
list 21
-ERR Message is deleted.
注:打上删除标记的邮件或者真正被删除的邮件将使用list将无法显示
LAST (注:开发实现时,dovecot 需要指定编译参数才可支持该命令)
LAST命令可以显示下一个信件的编号,即显示第一封为unseen标记邮件的uid。
如:
retr 1
last
+OK 2
注:每读取一封邮件,如top或retr命令,该邮件则会自动打上seen标记,执行last则显示第一封没有被读取的邮件的uid
RETR n
RETR命令可以显示第n个信件的全部内容。
Apr 24 14:20:49 localhost dovecot: pop3([email protected]): Fatal: master: service(pop3): child 16563 killed with signal 6 (core dumped)
REST
REST命令可以恢复被删除的n个信件。
RSET
+OK
成功结果:
1、取消对应被打上删除标记的邮件,使用list、stat命令等时,可以正常查看到对应取消标记的邮件
2、rset命令执行后,无论有多少封邮件被打上标记,rset命令后面是否有加上数字参数,均会把所有被打上删除标记的邮件取消删除标记
DELE n
DELE命令用来删除指定的第n个信件。
如:删除第一封邮件(这边的排序为pop3自己内部的排序)
dele 1
+OK Marked to be deleted.
或者删除不存在的记录
dele 22
-ERR There's no message 22.
或者删除已经被打上删除标记的记录
dele 1
+OK Marked to be deleted.
dele 1
-ERR Message is deleted.
成功结果:
1、再执行list命令查看,对应编号1的邮件不再显示
2、再执行stat命令查看,总邮件封数被减1
3、再执行uidl命令查看,对应编号1的邮件不再显示
4、再执行retr 1命令查看,提示邮件已被删除(-ERR Message is deleted.)
5、该pop会话未退出前,该邮件实际并未删除,只是打上了删除标记,使用rset命令可以取消删除标记
6、使用quit命令退出该pop会话,邮件被真正删除,uisdb.uis_email_list表中对应的邮件记录的status字段被修改为删除值,即2,(实际邮件体未删除,后期考虑批处理方案)
7、邮件被真正删除后,使用rset命令后已经无法再恢复,使用list命令,对应邮件排序将从1开始重新排列
TOP n m
显示第n个信件前m行的内容。
如:显示邮件body
top 1 100
如:显示邮件头部信息
top 1
或者指定的邮件被打上删除标记
top 1
-ERR Message is deleted.
或者指定的邮件实际不存在
top 22
-ERR There's no message 22.
NOOP
NOOP命令不执行任何操作,仅用来测试服务器的响应是否正常。
如:
noop
+OK
UIDL
如:列出所有邮件
uidl
+OK
2 0000000300000003(2 为第几封邮件,后面的字符串为该邮件的唯一标识)
3 0000000400000003
4 0000000500000003
5 0000000600000003
6 0000000700000003
.
或者指定查看某条记录
uidl 1
+OK 1 0000000300000003
或者指定查看不存在的记录
uidl 22
-ERR There's no message 22.
QUIT
QUIT退出POP3服务器,结束信件查阅过程。
注:
1、命令名大小写
2、查看日志信息是否有报错信息
3、telnet localhost 110或者telnet 192.168.146.188