用PHP实现POP3邮件的收取(一)

POP协议简介

  本文简要说明了通过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 <boss_ch>.

  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

  <boss_ch@china.com>; 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?= <Boss_ch@netease.com>

  To: boss_ch@china.com <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: <G1BRHJ03.V07@smtp2.ptt.js.cn>

  您好!

    这是一个邮件的小示例

  QUIT

  +OK Pop server at <mail2.china.com> 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    更新 退出

 

转载于:https://www.cnblogs.com/vicenteforever/articles/1605553.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【基础数学知识】带你理解泰勒展开式本质

推荐阅读时间&#xff1a;5min~8min主要内容&#xff1a;更好的理解&#xff0c;并且记忆泰勒展开式我们学习泰勒展开&#xff0c;本质上就是为了在某个点附近&#xff0c;用多项式函数取近似其他函数。可能有些童鞋就要问了&#xff0c;既然有一个函数了&#xff0c;为什么还需…

C#使用NPOI进行word的读写

目录一、简介1、操作Word的类库&#xff1a;二、简单使用1、XWPFDocument类的实例化2、设置页面的大小3、段落处理4、表格处理5、页眉页脚处理三、综合示例四、参考一、简介1、操作Word的类库&#xff1a;二、简单使用1、XWPFDocument类的实例化该类的实例对应一个word文档XWPF…

weblogic修改控制台ip_「Weblogic学习」Weblogic知识要点之JNDI/JTA编程开发

给它一个名字&#xff0c;它就能提供你要的服务&#xff0c;JNDI就是这么地任性。想任性的霸占数据&#xff1f;JTA为你把风。这期&#xff0c;谈谈JNDI和JTA的简单介绍&#xff0c;一起看看吧……JNDI编程JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的…

java不适合开发cv吗_JavaCV开发环境的配置

一.安装opencv2.4.4、测试运行OpenCV-2.4.4.exe&#xff0c;就是解压&#xff0c;把它解压到一个你喜欢的地方 ——1.1 路径最好不要太深&#xff0c;点啊点的最讨厌了2. 添加 ***\OpenCV2.4.4\build\x64\vc11\bin; 到环境变量的PATH后面 ——2.1 ***是你放OpenCV2.4.4的地方…

NA-NP-IE系列实验5:配置文件的备份和IOS 的备份

实验5:配置文件的备份和IOS 的备份<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1. 实验目的通过本实验&#xff0c;读者可以掌握如下技能&#xff1a;&#xff08;1&#xff09; 熟悉TFTP 服务器的使用&#xff08;2&#xf…

浅析 Sunday 算法

背景Sunday 算法是 Daniel M.Sunday 于 1990 年提出的字符串模式匹配。其效率在匹配随机的字符串时比其他匹配算法还要更快。Sunday 算法的实现可比 KMP&#xff0c;BM 的实现容易太多。算法过程假定主串为 "HERE IS A SIMPLE EXAMPLE"&#xff0c;模式串为 "EX…

.NET 6 Preview 1发布!

喜欢就关注我们吧&#xff01;.NET 6 首个预览版已发布&#xff0c;官方表示 .NET 6 的核心目标是完成从 .NET 5 开始的 .NET 统一计划的最后部分。此版本还将对 .NET 整体进行重大改进&#xff0c;包括针对云、桌面和移动应用程序的改进。.NET 6 计划于2021年11月正式发布&…

vba cad 获取宏的路径_VBA批量创建文件目录及链接,建议收藏备用

小伙伴们&#xff0c;之前有跟大家分享过Power Query获取文件夹内文件清单及其属性的方法【Excel快速获取文件列表及文件属性】。今天教大家通过VBA代码来实现同样的功能&#xff0c;提取文件夹内的文件信息更加灵活&#xff0c;只要选择对应的文件夹即可。实现效果操作方法&am…

纯JDBC系统的开发随想

纯JDBC系统的开发随想前两天&#xff0c;两个个纯后台应用项目在没有充分论证的情况下使用了SpringiBatis实现&#xff0c;从需求到实现、测试历经两天时间&#xff0c;实际代码开发时间是8小时&#xff0c;时间比较短&#xff0c;因为有以前的代码积累。再加上对框架熟烂于心&…

机器信息MachineInfo

不管是业务功能需要还是开发诊断需要&#xff0c;经常需要用到CPU内存硬盘等信息&#xff0c;或者需要主板编号和系统编号做唯一设备标识。于是设计了机器信息类 MachineInfo &#xff0c;支持Windows、Linux、Raspberry等。Nuget包&#xff1a;NewLife.Core源码地址&#xff1…

学习 Python 编程的 19 个资源

编译&#xff1a;wzhvictor&#xff0c;英文&#xff1a;codecondo segmentfault.com/a/1190000004187319用Python编写代码一点都不难&#xff0c;事实上它一直被赞誉为最容易学的编程语言。如果你准备学习web开发&#xff0c; Python是一个不错的开始&#xff0c;甚至想做游戏…

1155低功耗cpu排行_比拼浮点运算速度,超算排行榜是这样“算”出来的

本报记者 过国忠 通 讯 员 梅国英 吴 婷6月17日&#xff0c;新一期全球超算500强榜单出炉&#xff0c;入选500强的所有超算浮点运算速度都突破每秒千万亿次&#xff0c;中国超算也在前四占有两席位置。普通计算机用指令运算速度衡量计算性能&#xff0c;而超算通常用浮点运算速…

mysql 用户概念_传输概念 – db对象的用户/组/权限从mysql到postgresql

这似乎比stackoverflow更适合这里,所以这里&#xff1a;我一直在使用mysql一段时间以来,因为在大多数便宜的虚拟主机上,它是提供的数据库.但是,现在我开始认真开发Web应用程序,我一直在本地使用postgresql作为我的数据库,以便在我感到舒服时在客户端安装上正确使用它.我唯一没有…

在CSDN上的第一篇博客

大学三年在保研成功那一天算是画上了一个圆满的句号&#xff0c;但是这个句号并不代表我在大学里面学到了多少知识。相反&#xff0c;我常常为自己匮乏的专业知识而感到灰心丧气&#xff0c;甚至开始怀疑自己是否适合做IT这一行。大学期间成绩虽然不错&#xff0c;但是那仅仅只…

使用 Tye 辅助开发 k8s 应用竟如此简单(五)

使用 Tye 辅助开发 k8s 应用竟如此简单&#xff08;一&#xff09;使用 Tye 辅助开发 k8s 应用竟如此简单&#xff08;二&#xff09;使用 Tye 辅助开发 k8s 应用竟如此简单&#xff08;三&#xff09;使用 Tye 辅助开发 k8s 应用竟如此简单&#xff08;四&#xff09;续上篇&a…

详解冒泡排序

转自&#xff1a;静默虚空http://www.cnblogs.com/jingmoxukong/p/4302718.html要点冒泡排序是一种交换排序。什么是交换排序呢&#xff1f;交换排序&#xff1a;两两比较待排序的关键字&#xff0c;并交换不满足次序要求的那对数&#xff0c;直到整个表都满足次序要求为止。算…

java面向对象使用字符串_java面向对象中的String类中12种常用的方法

1、字符串与字符数组的转换字符串可以使用toCharArray()方法变成一个字符数组&#xff0c;也可以使用String类的构造方法把一个字符数组变成一个字符串。public class StringAPIDemo01{public static void main(String[] args){String str1 "hello"; //定义字符串ch…

python测试4_Python 各种测试框架简介(四):pytest

pytest 有时也被称为 py.test&#xff0c;是因为它使用的执行命令是 $ py.test。本文中我们使用 pytest 指代这个测试框架&#xff0c;py.test 特指运行命令。##较于 nose这里没有使用像前三篇一样(简介-举例-discovery-环境)式的分段展开&#xff0c;是因为 pytest 与 nose 的…

在Eigrp做不等值路由的负载均衡

在Eigrp做不等值路由的负载均衡 EIGRP Load Balancing 每个路由协议都支持等值路径的负载均衡.除此之外,IGRP和EIGRP也支持不等值路径的负载均衡,使用variance命令. Variance命令向路由器通告一个n值,n值使用variance命令指定.n值为1-128之间&#xff0c;默认为1。 网络拓扑 Va…

雪花算法Snowflake

雪花Id生成算法&#xff0c;是鼎鼎有名的分布式Id生成算法。它的优点在于&#xff0c;在分布式系统中快速生成有时间顺序的唯一编号&#xff01;Snowflake实测每秒可生成900万个唯一Id。Nuget包&#xff1a;NewLife.Core源码地址&#xff1a;https://github.com/NewLifeX/X/blo…