pop与imap是收信协议,区别在与pop收取收件夹的邮件而imap能收取所有邮件夹的邮件包括自定义邮件夹
pop的默认端口是110 ssl端口是995
imap的默认端口是143 ssl端口是993
smtp是发信协议 端口25
以下是命令行进行收信与发信的命令,以搜狐邮箱为例
收信
pop 110:
telnet mail.sohu.net 110 //搜狐的pop服务器
user 搜狐的email邮箱
pass 搜狐的email密码
stat #该命令用于查看邮箱中的邮件数量以及所占用的字节大小;
list mailid #该命令用于将邮箱中的邮件信息进行列表,当指定参数 msg# 时,返回该编号的邮件的信息,不指定则返回所有邮件的信息;
pop 995(ssl):
openssl s_client -crlf -connect mail.sohu.net:995 -ssl3
协议版本
-ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, -no_tls1
user 搜狐的email邮箱
pass 搜狐的email密码
imap 143:
telnet mail.sohu.net 143
A01 login 搜狐的email邮箱 搜狐的email密码 #用户登录
A02 LIST "" * #列出所有信箱列表
* LIST () "/" "INBOX"
* LIST () "/" "Drafts"
* LIST () "/" "Sent Items"
* LIST () "/" "Trash"
* LIST () "/" "Junk E-mail"
* LIST () "/" "Virus Items"
* LIST () "/" "&XfJT0ZABkK5O9g-"
* LIST () "/" "&g0l6Pw-"
* LIST () "/" "&XfJT0ZABkK5O9g-/DailyReport"
* LIST () "/" "Jira"
* LIST () "/" "Admin"
* LIST () "/" "&V4NXPpCuTvY-"
A02 OK LIST Completed
A03 Select INBOX #选择收件箱
* 37 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1] UIDs valid
* FLAGS (/Answered /Seen /Deleted /Draft)
* OK [PERMANENTFLAGS (/Answered /Seen /Deleted /Draft)] Limited
A03 OK [READ-WRITE] SELECT completed
A04 Search ALL #查询收件箱所有邮件
* OK X-SEARCH in progress
* OK X-SEARCH in progress
* OK X-SEARCH in progress
* SEARCH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
A04 OK SEARCH completed # 列出符合条件的邮件序号(ALL表示列出当前信箱INBOX中的所有邮件)
A05 Search new #查询收件箱所有新邮件
* OK X-SEARCH in progress
* OK X-SEARCH in progress
* OK X-SEARCH in progress
* SEARCH
A05 OK SEARCH completed #找不到任何新邮件
A06 Fetch 5 full #获取第5封邮件的邮件头
* 5 FETCH (INTERNALDATE "27-Jun-2006 14:00:27 +0800" FLAGS (/Seen) ENVELOPE ("Tue, 27 Jun 2006 13:56:51 +0800" "test " (("xxxxxx" NIL "xxxx" "xxxxxx")) (("xxxxxx" NIL "xxxx" "xxxxxx")) (("xxxxxx" NIL "xxxx" "xxxxxx")) ((NIL NIL "xxx" "xxxxx")) NIL NIL NIL "<000f01c699ae$7c5014a0$6b01a8c0@xxxxxx.xx >") BODY (("text" "plain" ("charset" "gb2312") NIL NIL "base64" 14 2) ("text" "html" ("charset" "gb2312") NIL NIL "base64" 420 7) "alternative") RFC822.SIZE 1396)
A06 OK Fetch completed
A07 Fetch 5 rfc822 #获取第5封邮件的完整内容
* 5 FETCH (RFC822 {1396}
[这里是邮件内容,太长,略...]
A07 OK Fetch completed
A08 Fetch 5 flags #查询第5封邮件的标志位
A08 OK Fetch completed
A09 Store 5 +flags.silent (/deleted) #设置标志位为删除
A09 OK STORE completed
A10 Expunge #永久删除当前邮箱INBOX中所有设置了/deleted标志的信件
A10 OK EXPUNGE completed
A11 noop # 空语句
A11 OK NOOP completed
A20 LOGOUT #退出
imap 993(ssl):
openssl s_client -crlf -connect mail.sohu.net:993 -ssl3
命令同上
发信
smtp 25:
telnet smtp.sohu.com 25
helo xxx
auth login
base64的用户名 #echo -n 用户名 | base64
base64的密码
mail from:<搜狐的email邮箱>
rcpt to:<收件人邮箱>
data
开始邮件内容
上面的mail from rcpt to必须跟下面的to from相同否则发不出去
to:<收件人邮箱>
from :<搜狐的email邮箱>
subject:nihao
mail body #邮件内容
.
quit
状态码说明:
220 : 服务就绪
250 :请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令执行成功会返回此信息)
235 :认证通过
221 :正在处理
354 :开始发送数据,结束以 .(DATA指令执行成功会返回此信息)
500 :语法错误,命令不能识别
550 :命令不能执行,邮箱无效
552 :中断处理:用户超出文件空间