setCC("b@b.com,c@c. com"); //抄送$mail"/> setCC("b@b.com,c@c. com"); //抄送$mail">

首頁  >  文章  >  後端開發  >  put your head on my shoulder 推薦個功能齊全的發送PHP郵件類

put your head on my shoulder 推薦個功能齊全的發送PHP郵件類

WBOY
WBOY原創
2016-07-29 08:36:05845瀏覽

PHP--下面這個類別的功能很強大,不但能發html格式的郵件,還可以發附件
使用方法:

複製程式碼代碼如下:

   
Include 「email.class」   
$mail->setTo("a@a.com"); //收件人  setCC("b@b.com,c@c.com"); //抄送   
$mail-> setCC("d@b.com,e@c.com"); //秘密抄送
$mail->setFrom(“f@f.com”);//寄件者   
$mail->setSubject(“主題”) ; //主題   
$mail->setText(“文字格式”) ;//傳送文字格式也可以是變數   
$mail->setHTML(「html格式」) ;//傳送html格式也可以是變數   
$mail->setAttachments(「c: a.jpg”) ;//新增附件,需說明路徑   
$mail->send(); //寄送郵件   
?> 


?> ?> 

?> ?> 複製🎜>複製🎜>複製🎜>複製🎜>複製🎜>複製🎜>複製🎜>複製🎜>複製🎜>複製🎜>代碼 代碼如下:

class Email {   
//---設定全域變數   
var $mailTo = " //收件抄送   
var $mailBCC = ""; // 秘密副本   
var $mailFrom = ""; // 寄件人  $ mailText = ""; // 文字格式的信件主體   
var $mailHTML = ""; // html格式的信件主體   
var $mailAttachments $inAddress) :用於處理郵件的地址 參數 $inAddress   
為包涵一個或多個字符串,email地址變數,使用逗號來分割多個郵件地址   
預設回傳值為true   
** ************************************************** ******/   
function setTo($inAddress){   
//--用explode()函數依」,」分割郵件地址進行分割   
$addressArray= explode( $inAddress);   
//--透過循環檢查郵件地址的合法性   
for($i=0;$i checkEmail($addressArray[$i])==false) return false; }   
//--所有合法的email地址存入數組中   
$this->mailTo=implode($address"Array, );   
return true; }   
/**************************************************   
函數 setCC($inAddress) 設定抄送人郵件地址   
參數 $inAddress 為包涵一個或多個郵件地址的字串,email位址變數,   
使用逗號來分割多個郵件地址預設回傳值為true   
********************************************** ****************/   
function setCC($inAddress){   
function setCC($inAddress){   
function setCC($inAddress){   
分割   
$addressArray = explode( ",",$inAddress);   
//--透過循環對郵件地址的合法性進行檢查   
for($i=0;$icheckEmail($addressArray[$i])==false) return false; }   
//--所有合法的email地址存入數組中    
//--所有合法的email地址存入數組中   this->mailCC = implode($addressArray, ",");   
return true; }   
/***************************************************   
函數setBCC($inAddress) 設定秘密抄送位址 參數 $inAddress 為包涵一個或多   
個郵件地址的字串,email位址變數,使用逗號來分割多個郵件地址 true   
******************************************/  以explode()函數依照」、」分割郵件地址進行分割   
$addressArray = explode( ",",$inAddress);   
//--透過迴圈檢查郵件地址的合法性進行檢查for($i=0;$i{ if($this->checkEmail($addressArray[$i])==false)  
return false; >}   
//--所有合法的email地址存入數組中   
$this->mailBCC = implode($addressArray, ",");    return¤true; /**************************************************** *************   
函數setFrom($inAddress):設定寄件者地址 參數 $inAddress 為包涵郵件   
位址的字串預設回傳值為true   
* **************************************/   
function setFrom($inAddress){   
if($this->checkEmail($inAddress)){   true;   
} return false; }
/**********************   
函數 setSubject($inSubject) 用於設定郵件主題參數$inSubject為字串,   
預設回傳的是true   
*******************************************/   
函數setSubject($inSubject){   
if(strlen(trim($inSubject))  0){ place n”,“”,$inSubject);   
回傳true; }   
回傳false; }   
/****************************************************
函數setText($inText) 設定文字格式的郵件主體參數 $inText 為文字內容默   
認回值為true   
***************** **********************  strlen(trim($inText)) > 0){   
$this->mailText = $文字;   
回傳true; }   
? */   
函數setHTML($inHTML){   
if(strlen(trim($inHTML)) > 0){   
$this-> ;HTML = $ 0){   
$this-> ;HTML = $ HTML; 🎜>回傳false; }   
/**********************************   
函數setHTML($inHTML) 設定html格式的郵件主體參數$inHTML為html格式,   
預設回傳值為true   
************************************/   
函數setAttachments($inAttachments){    if(strlen(trim($inAttachments))> >mailAttachments = $在附件中;   
回傳true; }   
回傳false; }   
/**********************   
函數 setAttachments($inAttachments) 設定郵件的附件 參數$inAttachments   
為一個包涵目錄的字符串,也可以包涵多個檔案以逗號進行分割 預設回傳值為true   
*********************************** *******/ "^[^@ ]+@([a-zA-Z0-9-]+. )+([a-zA-Z0-9-]{2}|net|com|gov|mil|org|edu| int)$",$inAddress));   
}   
/*********************************   
函數 checkEmail($inAddress) :這個函數我們前面已經呼叫過了,主要是   
用來檢查email地址的合法性   
********************************** *******/   
function loadTemplate($inFile如下內容: Dear ~!UserName~,   
您的地址是~!UserAddress~ */   
//--其中」~!」為起始標誌」~」為結束標誌   
$templateDelim>$templateDel 」~」;   
$templateNameStart = "!";   
//--找出這些位置並把它們替換掉   
$templateLineOut = ($templateFile = fopen($inFileLocation, "r")){   
while(!feof($templateFile)){   
$templateLine  fgets($templateFile, 1000); $templateDelim,$templateLine);   
for( $i=0; $i//-- 尋找起始位置 [$i],$templateNameStart) )==0){   
//--取代對應的值   
$hashName = substr($templateLineArray[$i],1);  
/----取代對應的值   
$templateLineArray[$i] = ereg_replace($hashName,(string)$inHash[$hashName],$hashName);   
}   
//--輸出字元陣列並疊加   
$templateLineOut .= implode($templateLineArray, "");   
} //--關閉檔案-設定主體格式(文字或html)   
if( strtoupper($inFormat)== "TEXT" )   
return($this->setText($templateLineOut )); inFormat)== "HTML" )   
return($this->setHTML($templateLineOut));   
} return false;   getRandomBoundary($offset = 0){   
//--隨機數產生   
srand(time()+$offset);    return ( "----".(md5(rand()))); }   
/*****************************************   
函數 getRandomBoundary($offset) 回傳一個隨機的邊界值   
參數 $offset 為整數 – 用於多管道的呼叫 傳回一個md5()編碼的字符串   
******************* *********************/   
function getContentType($inFileName){  
function getContentType($inFileName){  
function getContentType($inFileName){  移除路徑   
$inFileName = basename($inFileName);   
//--移除沒有副檔名的檔案   
if(strrchr($inFileName,"." "application/octet-stream";   
}   
//--提區副檔名並判斷   
$extension = strrchr($inFileName,)."); {   
case ".gif": return "image/gif";   
case ".gz": return "application/x-gzip ;   
case ".html": return "text/html";   
case ".jpg": return "image/jpeg";  ;   
case ".txt": return "text/plain";   
case ".zip": return "application/zip";  }   
return "application/octet-stream";   
}   
/********************************************   
函數: getContentType($ inFileName)用來判斷附件的類型   
*************************************** *******/    charset=us-asciin";   
$outTextHeader .= "Content-Transfer-Encoding: 7bitnn"; ";   
return $outTextHeader;   
} /**********************************************   
函數formatTextHeader把文字內容加上text的文件頭   
*************************************** **************/   
function formatHTMLHeader(){ader]$. "Content-Type: text/html;   
charset=us-asciin";    
charset=us-asciin";   
$outHTMLHeader .= "Content-Transfer-Encoding: 7bitnn";  >return $outHTMLHeader;   
}
/**********************************   
函數 formatAttachmentHeader($inFileLocation) 把郵件中的附件標示出來   
********************************/   
function formatAttachmentHeader($inFileLocation){   
$outAttachmentHeader = "";
$contentType = $this->getContentType($inFileLocation);   
//--如果附件是文字型則用標準的7位元編碼   
if(ereg( "text",$contentType)) {   
$outAttachmentHeader .= "Content-Type: ".$contentType. ";n";   
$outAttachmentHeader .=  '"$in.name($inname).
$outAttachmentHeader .= "Content-Transfer-Encoding: 7bitn";   
$outAttachmentHeader .= "Content-Disposition: attachment;n"; inFileLocation). '"'. "nn";   
$textFile = fopen($inFileLocation, "r");   
while(!fep.$ textFile,1000);   
}   
//--關閉文件 fclose($textFile);   
$outAttachmentHeader .以64位元進行編碼   
else{ $outAttachmentHeader .= "Content-Type: ".$contentType. ";n";   
$outAttachmentHeader .n";    $outAttachmentHeader 。 '. "n";   
$outAttachmentHeader .= "Content-Transfer-Encoding: base64n";   
$outAttachmentHeader .=$. ' filename= "'.basename($inFileLocation). '"'. "nn";   
//--呼叫外部指令uuencode進行編碼   
exec( "uu >for ($i = 1; $i$outAttachmentHeader .= $returnArray[$i]. "n";  $outAttachmentHeader;   
}   
/******************************   
函數 send()用於傳送郵件,傳送成功回傳值為true   
* ***********************************/   
function send(){   //--新增抄送人   
if($this->mailCC != "")   
$mailHeader .= "CC: ".$this->mailCC. --新增秘密副本人   
if($this->mailBCC != "")   
$mailHeader .= "BCC: ".$this->mailBCC. "n";  -新增寄件者   
if($this->mailFrom != "")   
$mailHeader .= "FROM: ".$this->mailFrom. "n";  "FROM: ".$this->mailFrom. "n";  ------------------------郵件格式------------------------ ------   
//--文字格式   
if($this->mailText != "" && $this->mailHTML == "" && $this->mailAttachments == "") {   
return mail($this->mailTo,$this->mailSubject,$this->mailText,$mailHeader);   
}
//--html或text格式   
else if($this->mailText != "" && $this->mailHTML != "" && $ >$bodyBoundary = $this->getRandomBoundary();   
$textHeader = $this->formatTextHeader();   
$版本   
$mailHeader .= "MIME-Version: 1.0n";   
$mailHeader .= "Content-Type: multipart/alternative;n"; .= "Content-Type: multipart/alternative;n"; .= "Cont. bodyBoundary. '"';   
$mailHeader .= "nnn";   
//--新增郵件主體與邊界   
$ >$mailHeader .= $textHeader;   
$mailHeader .= "--".$bodyBoundary. "n";   
//--新增標籤 $Header .= "n--".$bodyBoundary. "--";   
//--寄電子郵件   
return mail($this->mailTo,$this->mailSubject, "",$mail"",$mail ; = ""){   
$attachmentBoundary = $this->getRandomBoundary();   
$mailHeader .= "Content-Type: multipart/mixed;$mailHeader .= "Content-Type: multipart/mixed; .$attachmentBoundary. '"'. "nn";   
$mailHeader .= "This is a multi-part message in MIME format.n"; multi-part message in MIME format.n"; multi-part message in MIME format.n"; multi-part message in MIME format.n"; multi-part message in MIME format.nound"; n";   
$bodyBoundary = $this->getRandomBoundary(1);   
$textHeader = $this->formatTextHeader(1);  ); bodyHeader .= "MIME-Version: 1.0n";   
$mailHeader .= "Content-Type: multipart/alternative;n";   🎜>$mailmailHeader .'. ;   
$mailHeader .= "nnn";   
$mailHeader .= "--".$bodyBoundary. "n";   -".$bodyBoundary. "n";   
$mailHeader .= $htmlHeader;   
$mailHeader .= "n--".$bodyBoundary. "--"; 值   
$attachmentArray = explode( ",",$this->mailAttachments);   
//--根據附件的個數進行循環   
for($i=00$i//--分割 $mailHeader .= "n--".$attachmentBoundary. "n";   
//--附件資訊資訊->formatAttachmentHeader($attachmentArray[$i]);   
}   
$mailHeader .= "--".$attachmentBoundary.  "; ->mailSubject, "",$mailHeader);   
}   
return false;   
}   
}   
}   
}   
}   
以上就介紹了put your head on my shoulder 推薦個功能齊全的發送PHP郵件類,包括了put your head on my shoulder方面的內容,希望對PHP教程有興趣的朋友有所幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn