龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

电子邮局PHP应用篇――POP3邮件的收取(一)

时间:2011-03-20 22:37来源:未知 作者:admin 点击:
分享到:
本文简要说明了通过POP3协议收取邮件、MIME邮件的解码的原理;针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例。分为邮件收取、MIME解码两个部分。这里我们先向您介

  本文简要说明了通过POP3协议收取邮件、MIME邮件的解码的原理;针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例。分为邮件收取、MIME解码两个部分。这里我们先向您介绍邮件的收取,解码部分会在以后的文章中为各位详细的介绍,敬请关注。      

  现在Internet上最大的应用应该是非Email莫属了,我们每天都习惯于每天通过Email进行交流,各大网站也几乎都推出了自己的基于WEB的免费邮件系统。在本文里,笔者将介绍一些Email实现的一些原理。同时我们假设你对于PHP的编程有一定的基础,对于TCP/IP协议也有一定的了解。 POP 协议简介   POP的全称是 Post Office Protoco ,即邮局协议,用于电子邮件的接收,现在常 用的是第三版 ,简称为 POP3。通过POP协议,客户机登录到服务器上后,可以对自己的邮件进行删除,或是下载到本地,下载后,电子邮件客户软件就可以在本地对邮件进行修改、删除等。另外一种用于接收信件的邮件是 IMAP 协议,现在发展很快,在本文中,我们暂不讨论。   POP服务器一般使用的是TCP的110号端口,如果你用的是Foxmail的话,在其收邮件的时候,你可以看到其信息提示窗口有这么一些命令:

  

  “正在连接到 62.123.23.123:110";

  

  "USER BOSS_CH";

  

  "PASS..............";

  

  下面让我们来看一段 与 POP3 服务器对话的实录:

  

  telenet pop.china.com 110

  

  +OK AIMC POP service (mail2.china.com) is ready.

  

  USER boss_ch

  

  +OK Please enter password for user .

  

  PASS ******

  

  +OK boss_ch has 1 messages (750 octets)

  

  STAT

  

  +OK 1 750

  

  LIST

  

  +OK 1 messages (750 octets)   1 750   RETR 1

  

  +OK 750 octets

  

  Received: from smtp2.ptt.js.cn([202.102.24.37]) by china.com(JetMail 2.5.3.0)

  

  with SMTP id jm4839cc4227; Sat, 23 Sep 2000 05:31:21 -0000

  

  Received: from chenjunqing ([61.155.120.6]) by smtp2.ptt.js.cn

  

  (Netscape Messaging Server 4.15) with SMTP id G1BRHJ03.V07 for

  

  ; Sat, 23 Sep 2000 13:34:31 +0800

  

  Date: Sat, 23 Sep 2000 13: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: FoxMail 3.1 [cn]

  

  Mime-Version: 1.0

  

  Content-Type: text/plain; charset="GB2312"

  

  Content-Transfer-Encoding: 8bit

  

  Message-ID:   您好!

  

  这是一个邮件的小示例

  

  QUIT

  

  +OK Pop server at signing off.

  

  以下对几个常用的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

  

  更新

  

  退出

  

精彩图集

赞助商链接