本文简要说明了通过POP3协议收取邮件、MIME邮件的解码的原理;针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例。分为邮件收取、MIME解码两个部分。这里我们先向您介绍邮件的收取,解码部分会在以后的文章中为各位详细的介绍,敬请关注。
现在Internet上最大的应用应该是非Email莫属了,我们每天都习惯于每天通过Email进行交流,各大网站也几乎都推出了自己的基于WEB的免费邮件系统。在本文里,笔者将介绍一些Email实现的一些原理。同时我们假设你对于PHP的编程有一定的基础,对于TCP/IP协议也有一定的了解。
POP协议简介
POP的全称是PostOfficeProtoco,即邮局协议,用于电子邮件的接收,现在常用的是第三版,简称为POP3。通过POP协议,客户机登录到服务器上后,可以对自己的邮件进行删除,或是下载到本地,下载后,电子邮件客户软件就可以在本地对邮件进行修改、删除等。另外一种用于接收信件的邮件是IMAP协议,现在发展很快,在本文中,我们暂不讨论。
POP服务器一般使用的是TCP的110号端口,如果你用的是Foxmail的话,在其收邮件的时候,你可以看到其信息提示窗口有这么一些命令:
“正在连接到 62.123.23.123:110";
"USERBOSS_CH";
"PASS..............";
下面让我们来看一段与POP3服务器对话的实录:
telenetpop.china.com110
+OKAIMCPOPservice(mail2.china.com)isready.
USERboss_ch
+OKPleaseenterpasswordforuser.
PASS******
+OKboss_chhas1messages(750octets)
STAT
+OK1750
LIST
+OK1messages(750octets)
1750
RETR1
+OK750octets
Received:fromsmtp2.ptt.js.cn([202.102.24.37])bychina.com(JetMail2.5.3.0)
withSMTPidjm4839cc4227;Sat,23Sep200005:31:21-0000
Received:fromchenjunqing([61.155.120.6])bysmtp2.ptt.js.cn
(NetscapeMessagingServer4.15)withSMTPidG1BRHJ03.V07for
;Sat,23Sep200013:34:31+0800
Date:Sat,23Sep200013:34:18+0800
From:=?ISO-8859-1?Q?=B3=C2=BF=A1=C7=E5?=
To:boss_ch@china.com
Subject:=?ISO-8859-1?Q?=D3=CA=BC=FE=CA=BE=C0=FD?=
X-mailer:FoxMail3.1[cn]
Mime-Version:1.0
Content-Type:text/plain;charset="GB2312"
Content-Transfer-Encoding:8bit
Message-ID:
您好!
这是一个邮件的小示例
QUIT
+OKPopserveratsigningoff.
以下对几个常用的POP3命令作一个简单的介绍 :
命令 参数 状态 描述
------------------------------------------
USER username 认可 此命令与下面的pass命令若成功,将导致状态转换
PASS password 认可
APOP Name,Digest认可 Digest是MD5消息摘要
------------------------------------------
STAT None 处理 请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
UIDL [Msg#] 处理 返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
LIST [Msg#] 处理 返回邮件数量和每个邮件的大小
RETR [Msg#] 处理 返回由参数标识的邮件的全部文本
DELE [Msg#] 处理 服务器将由参数标识的邮件标记为删除,由quit命令执行
RSET None 处理 服务器将重置所有标记为删除的邮件,用于撤消DELE命令
TOP [Msg#] 处理 服务器将返回由参数标识的邮件前n行内容,n必须是正整数
NOOP None 处理 服务器返回一个肯定的响应,不做任何操作。
------------------------------------------
QUIT None 更新退出
本文作者: