用PHP收发邮件
这几天在做一个用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分别进行解码。 先写到这里,后续......
相关文档:
<div id="time" align="center">time </div>
<script language="javascript">
function time1()
{
var now,n,y,r,h,m,s;
now=new Date();
n = now.getYear();
y = now.getMonth()+1;
r = now.getDate();
h = now.getHours();
m =now.getMinutes();
s = now.getSeconds();
......
首先来个 email.class.php 类:
<?php
class smtp
{
/* Public Variables */
var $smtp_port;
var $time_out;
var $host_name;
var $log_file;
var $relay_host;
var $debug;
var $auth;
var $user;
var $pass;
/* Private Variables */
var $sock;
/* Constractor */
function smtp($rel ......
<?php
error_reporting(0);//7all,0no
ini_set('display_errors', '0');
function myerror($errno, $errstr, $errfile, $errline)
{
echo "<BR>error type: [$errno] $errstr<br />\n";
echo "in line $errline of file $errfile<BR>";
} ......
文件读取函式
//文件读取函式
function PHP_Read($file_name) {
$fd=fopen($file_name,r);
while($bufline=fgets($fd, 4096)){
$buf.=$bufline;
}
fclose($fd);
return $buf;
}
& ......
<?php
class useful{
/*
* 常用函数类
* 作 者:多菜鸟
* 联系邮箱:kingerq AT msn DOT com
* 创建时间:2005-07-18
* 来源:http://blog.csdn.net/kingerq
*/
/*
* 功能:格式化数字,以标准MONEY格式输出
......