欢迎光临
我们一直在努力

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

建站超值云服务器,限时71元/月

<?
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<strlen($str))
    {
      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<count($filename);$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<count($filename);$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("<font color=red>heheehe</font><img src=\"test.gif\"><img src=\"thumb1.jpg\">");
$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)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 发送MIME邮件~~(其实我对他的格式一窍不通,是看着OUTLOOK中的源码写的)-PHP教程,邮件处理
分享到: 更多 (0)

相关推荐

  • 暂无文章