注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 模拟Linux客户端远程登陆L..
 帮助

用PHP收发邮件


2007-04-25 15:20:00
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
这几天在做一个用php收发邮件的项目,才发现有太多的东西要学了,为了以后方便,或者给还没有接触这方面的人方便,我把这些知识给记录下来。
 
先看看有哪些方法可以实现 php收发邮件。
1、用fsocket这种方法要用到pop3的命令,这种方法连接或者接收的速度比较快。
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        更新     
 
 
第一步:fsockopen(地址,端口,$error)
第二步:可以开始发送上面的命令了。
这里比较麻烦的就是读取pop返回的信了。
可以用fgets去获取,但是经常会到文件末尾时一直没有找到feo而出现超时情况。
 
第二种办法就是用imap了,记得把php.ini的imap打开
网上有许多高手写好的php类了,下来就可以用了。我试过,发现这种速度比较慢。
 
用php接收来的邮件一般都是有编码过的。所以接收到邮件后要对数据进行编码。
目前这种编码主要有两种方式,可以用imap_base64和quoted_printable_decode分别进行解码。
 
先写到这里,后续......
 

本文出自 “有个blog” 博客,转载请与作者联系!





    文章评论
 
2007-04-25 16:53:38
不错,期待博主赶快再出力作。

2007-04-28 17:16:58
有点意思……

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: