php获取outlook邮件内容,发送MIME邮件~~(其实我对他的格式一窍不通,是看着OUTLOOK中的源码写的)-PHP教程,邮件处理...

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: \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%5C%22test.gif%5C%22%5C%22thumb1.jpg%5C%22");

$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");*/

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值