php郵件內容
㈠ phpMailer發送HTML內容、帶附件的郵件實例
這篇文章主要介紹了PHPMailer發送HTML內容、帶附件的郵件實例,發送的內容包含圖片和文字,附件則發送的一個EXCEL表,需要的朋友可以參考下
PHPMailer是一個封裝好的PHP郵件發送類,支持發送HTML內容的電子郵件,以及可以添加附件發送,並不像PHP本身mail()函數需要伺服器環境支持,您只需要設置郵件伺服器以相關信息就能實現郵件發送功能。
本文將結合實例代碼,講解如何設置和實現發送HTML以及帶附件的郵件功能。
首先,您可以到PHPMailer獲取最新的下載包,解壓到WEB目錄下。
然後建立一個sendmail.php的文件,載入PHPMailer類,並設置相關屬性參數,如郵件伺服器地址,發件人和收件人,郵件內容等等。
詳情請看代碼:
require_once('class.phpmailer.php');//載入PHPMailer類$mail=newPHPMailer();//實例化$mail->IsSMTP();//啟用SMTP$mail->Host="smtp.163.com";//SMTP伺服器以163郵箱為例子$mail->Port=25;//郵件發送埠$mail->SMTPAuth=true;//啟用SMTP認證$mail->CharSet="UTF-8";//字元集$mail->Encoding="base64";//編碼方式$mail->Username="[email protected]";//你的郵箱$mail->Password="xxx";//你的密碼$mail->Subject="你好";//郵件標題$mail->From="[email protected]";//發件人地址(也就是你的郵箱)$mail->FromName="月光光";//發件人姓名$address="[email protected]";//收件人email$mail->AddAddress($address,"親");//添加收件人(地址,昵稱)$mail->AddAttachment('xx.xls','我的附件.xls');//添加附件,並指定名稱$mail->IsHTML(true);//支持html格式內容$mail->AddEmbeddedImage("logo.jpg","my-attach","logo.jpg");//設置郵件中的圖片$mail->Body='你好,<b>朋友</b>!<br/>這是一封來自<ahref="http://www.jb51.net"target="_blank">jb51.net</a>的郵件!<br/><imgalt="helloweba"src="cid:my-attach">';//郵件主體內容//發送if(!$mail->Send()){echo"MailerError:".$mail->ErrorInfo;}else{echo"Messagesent!";}從代碼中可以看出,實例化PHPMailer後,我們指定使用SMTP方式來發郵件,設置SMTP郵件伺服器,並啟用SMTP認證,如果您的郵件伺服器不需要認證,則設置$mail->SMTPAuth=false,並且不需要密碼就可以發送。
然後設置字元集和編碼支持中文字元,注意原版的PHPMailer包對中文字元的支持不太理想,所以您可以下載helloweba示例中的改進包。
然後設置發件人和收件人,添加附件。注意附件原名最好不要用中文,可以在AddAttachment()指定中文名稱。
然後設置郵件html內容,最後就是發送,流程一目瞭然,如果發送成功,將會收到郵件。
㈡ 用PHP發送電子郵件的方法
<?
/*
* 郵件發送類
*/
class smail {
//您的SMTP 伺服器供應商,可以是域名或IP地址
var $smtp = "";
//SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證,如不清楚請與你的smtp 服務商聯系。
var $check = 1;
//您的email帳號名稱
var $username = "";
//您的email密碼
var $password = "";
//此email 必需是發信伺服器上的email
var $s_from = "";
/*
* 功能:發信初始化設置
* $from 你的發信伺服器上的郵箱
* $password 你的郵箱密碼
* $smtp 您的SMTP 伺服器供應商,可以是域名或IP地址
* $check SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證
*/
function smail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* 功能:發送郵件
* $to 目標郵箱
* $from 來源郵箱
* $subject 郵件標題
* $message 郵件內容
*/
function send ( $to, $from, $subject, $message ) {
//連接伺服器
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "聯接伺服器失敗".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "錯誤信息1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";
fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "錯誤信息2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}
//身份驗證
if ($this->check=="1") {
//驗證開始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息3:$lastmessage".__LINE__;
//用戶姓名
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息4:$lastmessage".__LINE__;
//用戶密碼
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "錯誤信息5:$lastmessage".__LINE__;
}
//FROM:
$lastact="MAIL FROM: <". $this->s_from . ">\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息6:$lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: <". $to ."> \r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息7:$lastmessage".__LINE__;
//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "錯誤信息8:$lastmessage".__LINE__;
//處理Subject頭
$head="Subject: $subject\r\n";
$message = $head."\r\n".$message;
//處理From頭
$head="From: $from\r\n";
$message = $head.$message;
//處理To頭
$head="To: $to\r\n";
$message = $head.$message;
//加上結束串
$message .= "\r\n.\r\n";
//發送信息
fputs($fp, $message);
$lastact="QUIT\r\n";
fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
/*發送示例
$sm = new smail( "用戶名@163.com", "密碼", "smtp.163.com" );
$end = $sm->send( "目標郵箱", "來源郵箱", "這是標題", "這是郵件內容" );
if( $end ) echo $end;
else echo "發送成功!";
*/
?>