给你个类吧,发送带附件的邮件的类!界面自己写吧!<?
class Email
{
var $mailTo      = "";
var $mailCC      = "";
var $mailBCC     = "";
var $mailfrom    = "";
var $mailsubject = "";
var $mailText    = "";
var $mailHTML    = ""; //html 文本信息
var $mailAttachments= ""; //附件数组
///////////////////////////函数部分/////////////////////////////////////////////
/**************设置电子邮件地址*******************/
function setTo($inaddress)
{
  $addressArray=explode(",",$inaddress);
  for ($i=0;$i<count($addressarray);$i++)
   {
    if($this->checkEmail($addressArray[$i])==false)
    return false;
   }
   $this->mailTo=implode($addressArray,",");
   return true;
}
/****************设置邮件的抄送地址*****************/
function setCC($inAddress)
{
  $addressArray=explode(",",$inAddress);
  for ($i=0;$i<count($addressArray);$i++)
   {
    if($this->checkEmail($addressArray[$i])==false)
    return false;
   }
   $this->mailCC=implode($addressArray,",");
   return true;
}
/****************设置暗送邮件地址*****************/
function setBCC($inAddress)
{
  $addressArray=explode(",",$inAddress);
  for($i=0;$i<count($addressArray);$i++)
   {
    if($this->checkEmail($addressArray[$i])==false)
    return false;
   }
   $this->mailBBC=implode($addressArray,",");
   return true;
}
/****************设置邮件发送人地址*****************/
function setFrom($inAddress)
{
  if($this->checkEmail($inAddress))
   {
    $this->mailFrom=$inAddress;
    return true;
   }
   return false;
}
/****************设置邮件主题*********************/
function setSubject($inSubject)
{
  if(strlen(trim($inSubject))>0)
   {
    $this->mailSubject=ereg_replace("\n","",$inSubject);
    return true;
   }
   return false;
}
/*****************设置邮件纯文本内容*************/
function setText($inText)
{
  if(strlen(trim($inText))>0)
   {
    $this->mailText=$inText;
    return true;
   }
   return false;
}
/******************设置邮件HTML文本内容************/
function setHTML($inHTML)
{
  if(strlen(trim($inHTML))>0)
   {
    $this->mailHTML=$inHTML;
    return true;
   }
   return false;
}
/******************存储附件字符串*****************/
function setAttachments($inAttachments)
{
  if(strlen(trim($inAttachments))>0)
   {
    $this->mailAttachments=$inAttachments;
    return true;
   }
   return false;
}
/******************检查邮件地址是否合法***************/
function checkEmail($inAddress)
{
return (ereg( "^[^@]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}
             \net\com\gov\mil\edu\int)\$",$inAddess));
}
/******************读取一个模板文件并替换一些红定义的值*********/
function loadTemplate($inFileLocation,$inHash,$inFormat)
{
//--设置模板的一些符号
  $templateDelim= "~";
  $templateNAMEStart= "!";
//--设置外部字串
  $templateLineOut= "";
//--打开模板文件
  if($templateFile=fopen($inFileLocation,"r"))
   {
//循环分析文件,一行一行的分析
  while (!feof($templateFile))
   {
    $templateLine=fgets($templateFile,1000);
//分割文件的每一行,存放于数组中,并规范其语句
  $templateLineArray=explode($templateDelim,$templateLine);
  for($i=0;$i<count($templateLineArray);$i++)
   {
    //--从0的位置开始寻找 $templateNAMEStart
    if(strcspn($templateLineArray[$i],$templateNAMEStart)==0)
     {
      //--在$templateNAMEStart之后得到宏定义的名字
      $hashNAME=substr($templateLineArray[$i],1);
      //--替换宏定义的名字
      $templateLineArray[$i]=ereg_replace($hashNAME,(string)$inHash[$hashNAME],$hashNAME);
    }
   }
    $templateLineOut.=implode($templateLineArray,"");
  }
  //--关闭文件
  fclose($templateFile);
  //--按固定的格式设置邮件内容
  if(strtoupper($inFormat)=="TEXT")
     return($this->setText($templateLineOut));
     elseif(strtoupper($inFormat)=="HTML")
      return($this->setHTML($templateLineOut));
     }
     return false;
  }
/********************返回一个边界随机值****************/
function getRandomBoundary($offset=0)
{
  srand(time()+$offset);
  return("----".(md5(rand())));
}
/********************为文件类型返回一个内容种类*********/
function getContentType($inFileNAME)
{
  //--剥去路径
  $inFileNAME=baseNAME($inFilNAME);
  //--检查文件扩展名
  if(strrchr($inFileNAME,".")==false)
   {
    return "application/octet-stream";
   }
  //--检查文件扩展名
  $extension=strrchr($inFileNAME,".");
  switch ($extension)
   {
    case ".gif": return               "image/gif";
    case ".gz":  return               "application/x-gzip";
    case ".htm": return               "text/HTML";
    case ".HTML":return               "text/HTML";
    case ".jpg": return               "image/jpeg";
    case ".tar": return               "application/x-tar";
    case ".txt": return               "text/plain";
    case ".zip": return               "application/zip";
    default    : return               "application/octet-stream";
   }
   return "application/octet-stream";
}
/*******************为文本返回一个格式化过的头信息***************/
function formatTextHEADer()
{
  $outTextHEADer= "";
  $outTextHEADer.= "Content-Type:text/plain;charset=us-ascii\n";
  $outTextHEADer.= "Content-Transfer-Encoding: 7bit\n\n";
  $outTextHEADer.= $this->mailText."\n";
  return $outTextHEADer;
}
/*******************返回一个HTML的头信息**************************/
function formatHTMLHEADer()
{
  $outHTMLHEADer= "";
  $outHTMLHEADer.= "Content-Type:text/HTML;charset=us-ascii\n";
  $outHTMLHEADer.= "Content-Transfer-Encoding: 7bit\n\n";
  $outHTMLHEADer.= $this->mailHTML."\n";
  return $outHTMLHEADer;
}
/******************返回一个附件的头信息*************************/
function formatAttachmentHEADer($inFileLocation)
{
  $outAttachmentHEADer= "";
 //--通过文件加的扩展名得到content-type
  $contentType=$this->getContentType($inFileLocation);
 //--如果是text的类型,就用标准的7bit编码
  if(ereg("text",$contentType))
   {
    //--格式化信息头
    $outAttachmentHEADer.= "Content-Type:".$contentType.";\n";
    $outAttachmentHEADer.= 'NAME="'.baseNAME($inFileLocation).""."\n";
    $outAttachmentHEADer.= "Content-Transfer-Encoding:7bit\n";
    $outAttachmentHEADer.= "Content-Disposition:attachment;\n";
    $outAttachmentHEADer.= 'fileNAME="'.baseNAME($inFileLocation).""."\n\n";
    $textFile=fopen($inFileLocation,"r");
   //--一行一行的检查文件
    while (!feof($textFile))
     {
      $outAttachmentHEADer.=fgets($textfile,1000);
     }
   //--关闭文件
    fclose($textFile);
    $outAttachmentHEADer.= "\n";
   }
   //--非text类型用64-bit编码
   else
   {
    //格式化头信息
    $outAttachmentHEADer.= "Content-type:".$contentType.";\n";
    $outAttachmentHEADer.= 'NAME="'.baseNAME($inFileLocation).""."\n";
    $outAttachmentHEADer.= "Content-transfer-Encoding:base64\n";
    $outAttachmentHEADer.= "content-Disposition:attachment;\n";
    $outAttachmentHEADer.= 'fileNAME="'.baseNAME($inFileLocation).""."\n\n";
    //--调用uuencode命令
    exec("uuencode-m $inFileLocation nothing_out",$returnArray);
    //--加入每一行的返回值
    for($i=1;$i<(count($returnArray));$i++)
     {
      $outAttachmentHEADer.=$returnArray[$i]."\n";
     }
    }
    return $outAttachmentHEADer;
}
/********************发送邮件***********************/
function send()
{
 //--把邮件头设为空********************************/
 $mailHEADer= "";
 //--加入抄送地址
 if($this->mailCC!= "") $mailHEADer.= "CC:".$this->mailCC."\n";
 //--加入暗送地址
 if($this->mailCC!= "") $mailHEADer.= "BCC:".$this->mailBCC."\n";
 //--加入发送人地址
 if($this->mailFrom!= "") $mailHEADer.= "FROM:".$this->mailFrom."\n"; //------------------信息类型-----------------
 //--text文本
 if($this->mailText!= ""&&$this->mailHTML== ""&&$this->mailAttachments== "")
  {
   //--得到一个随机边界
   $BODYBoundary=$this->getRandomBoundary();
   //--格式化头信息
   $textHEADer=$this->formatTextHEADer();
   $HTMLHEADer=$this->formatHTMLHEADer();
   //--设置MINE版本
   $mailHEADer.="MIME-Version:1.0\n";   $mailHEADer.= "Content-Type:multipart/alternative;\n";
   $mailHEADer.= 'boundary="'.$BODYBoundary."";
   $mailHEADer.= "\n\n\n";
   //--加入信体和边界
   $mailHEADer.= "--".$BODYBoundary."\n";
   $mailHEADer.= $textHEADer;
   $mailHEADer.= "--".$BODYBoundary."\n";
   //--加入HTML和结束边界
   $mailHEADer.=$HTMLHEADer;
   $mailHEADer.= "\n--".$BODYBoundary."--";
   //--发送信息
   return mail($this->mailTo,$this->mailSubject,"",$mailHEADer);
  }
  //--HTML 和 TEXT 和 附件
  elseif($this->mailText!= ""&&$this->mailHTML!= ""&&$this->mailAttachments!= "")
   {
    $attachmentBoundary=$this->getRandomBoundary();
  //--为所有部分和边界设置头信息
  $mailHEADer.= "Content-Type:multipart/mixed;\n";
  $mailHEADer.= 'boundary="'.$attachmentBoundary.""."\n\n";
  $mailHEADer.= "This is a multi-part message in MIME format.\n";
  $mailHEADer.= "--".$attachmentBoundary."\n"; //--TEXT 和 HTML--
  $BODYBoundary=$this->getRandomBoundary(1);
 //--格式化头信息
 $textHEADer=$this->formatTextHEADer();
 $HTMLHEADer=$this->formatHTMLHEADer();
 //--设置MIME版本
 $mailHEADer.= "MIME-version :1.0\n";
 //--为所有部分和边界设置头信息
 $mailHEADer.= "Content-Type:multipart/alternative;\n";
 $mailHEADer.= 'boundary="'.$BODYBoundary."";
 $mailHEADer.= "\n\n\n";
 //--加入信体和边界
 $mailHEADer.= "--".$BODYBoundary."\n";
 $mailHEADer.= $textHEADer;
 $mailHEADer.= "--".$BODYBoundary."\n";
 //--加入HTML和结尾边界
 $mailHEADer.=$HTMLHEADer;
 $mailHEADer.= "\n--".$BODYBoundary."--";
 //--得到附件文件名数组名
 $attachmentArray=explode(",",$this->mialAttachments);
 //--检索第一个附件
   for($i=0;$i<count($attachmentArray);$i++)
    {
     //--附件分割标志
     $mailHEADer.= "\n--".$attachmentBoundary."\n";
     //--得到附件信息
     $mailHEADer.=$this->formatAttachmentHEADer($attachmentArray[$i]);
    }
    $mailHEADer.= "--".$attachmentBoundary."--";
    return mail($this->mailTo,$this->mailSubject,"",$mailHEADer);
  }
  return false;
 }
}
?>

解决方案 »

  1.   

    找找文章,介绍php面向对象的
      

  2.   

    哪找?
    我是说网上的电子书;除了:
    http://nihao.dlut.edu.cn/web/book
    http://www.nopayweb.com 
    http://www.psyon.org 
    ftp://tracy.bupt.edu.cn 
    http://lib.wuhee.edu.cn/book/computer.asp 
    http://www.5xsoft.com
    http://www.godcn.net/school/download http://hoganbooks.com/freebook/webbooks.html
     http://www.vlib.org/ 
    http://202.114.98.12/book
      

  3.   

    php手册里面不是有类的简单示范吗??看看就会了。。
    php中的类很简单。。