繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> 邮件处理 >> 发送MIME邮件~~(其实我对他的格式一窍不通,是看着OUTLOOK中的源码写的)

发送MIME邮件~~(其实我对他的格式一窍不通,是看着OUTLOOK中的源码写的)

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:40  文字大小:【】【】【
简介:<? class mime_mail { var $boundary0="----=_NextPart_000_00EE_01C07425.958FDFE0";//三条分界,0是附件,2是HTML,1是要附加的图片 var $boundary1="----=_NextPart_001_00EF_01C07425.9...

class mime_mail

{

var $boundary0="----=_NextPart_000_00EE_01C07425.958FDFE0";//三条分界,0是附件,2是HTML,1是要附加的图片

var $boundary1="----=_NextPart_001_00EF_01C07425.958FDFE0";

var $boundary2="----=_NextPart_002_00F0_01C07425.958FDFE0";

var $body;

function get_mail_header()//邮件头

{

return $this->mail_header="MIME-Version: 1.0

Content-Type: multipart/mixed;

boundary=\"$this->boundary0\"

This is a multi-part message in MIME format.

--$this->boundary0

Content-Type: multipart/related;

boundary=\"$this->boundary1\";

type=\"multipart/alternative\"

--$this->boundary1

Content-Type: multipart/alternative;

boundary=\"$this->boundary2\"

";

}

function str_row($str,$n)//把字符串分割成n行,OUTLOOK中好象必须把BASE64割成<77字符/行才行

{

$i=0;

if($n<1)return $str;

while($i

{

if(strlen($str)>$n)

{

$new_str.=substr($str,$i,$n).chr(13).chr(10);

$i+=$n;

}

else

{

$new_str.=$str;

$i=strlen($str);

}

}

return $new_str;

}

function loadfromfile($filename)//读出文件并编码

{

$fp=fopen($filename,"rb");

$c=fread($fp,filesize($filename));

fclose($fp);

return $this->str_row(base64_encode($c),77);

}

function file_header($filename)//给出文件头

{

switch(substr($filename,strlen($filename)-3,3))

{

case "gif":

return "Content-Type: image/gif\n name=\"$filename\"";

break;

case "jpg";

return "Content-Type: image/jpeg\n name=\"$filename\"";

break;

case "txt";

return "Content-Type: text/plain\n name=\"$filename\"";

break;

default:

return "Content-Type: application/octetstream\n name=\"$filename\"";

}

}

function mail_body($str)//HTML部分

{

$this->body.="--".$this->boundary2."\nContent-Type: text/html;\n charset=\"gb2312\"\n\n".$str."\n\n--".$this->boundary2."--\n\n";

}

function mail_picture($filename)//附件的图片,HTML中用到的这里必须添加,否则不能在本地显示

{

if($filename==null)

{

$this->body.="--".$this->boundary1."--\n\n";

}

for($i=0;$i

{

$cid=md5(uniqid(time()));

$this->body=str_replace($filename[$i],"cid:$cid",$this->body);

$this->body.="--".$this->boundary1."\n";

$this->body.=$this->file_header($filename[$i])."\nContent-Transfer-Encoding: base64\n";

$this->body.="Content-ID: <$cid>\n\n";

$this->body.=$this->loadfromfile($filename[$i]);

}

$this->body.="\n\n--".$this->boundary1."--\n\n";

}

function mail_attachment($filename)//附件

{

for($i=0;$i

{

$this->body.="--".$this->boundary0."\n";

$this->body.=$this->file_header($filename[$i])."\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment;\n filename=\"$filename[$i]\"\n\n";

$this->body.=$this->loadfromfile($filename[$i]);

}

$this->body.="--".$this->boundary0."--\n\n";

}

function send_mail($to,$subject,$from)//发送

{

mail($to,$subject,$this->body,"From:".$from."\n".$this->get_mail_header());

}

};

/*$s=new mime_mail;

//这里是调用格式

$s->mail_body("heheehe");

$s->mail_picture(array("test.gif","Thumb1.jpg"));//如果没有就写mail_picture(null);下面也是

$s->mail_attachment(array("MIME_MAIL.PHP","Thumb1.jpg","newProject.rar","session.zip"));

$s->send_mail("wan_dou@wenwenweb.com","测试","zhangxw@online.sh.cn");*/

?>

责任编辑:admin
相关文章