ThinkPHP結合PHPMailer自動發送郵件功能

在最近的一個case中,是一個類OA的項目,客戶須要有郵件提醒。整個的程序架構考慮敏捷開發,使用了 ThinkPHP,由於在以前作JSP的時候用過PHPMailer,因此就考慮將PHPMailer引入進來。

具體的方法:php

下載PHPMailer類包,放入ThinkPHP的Vendor目錄,這是ThinkPHP的第三方類庫目錄html

而後在項目目錄下common文件夾下,在common.php(ThinkPHP中此文件會自動被引用,若是沒有,新建一個common.php)中新增調用發送郵件的函數thinkphp

 

/********************************Email**********************************/

//郵發方法的定義
function s_mail($sendto, $title, $response) {
	//導入函數包的類class.phpmailer.php
	vendor ( "PHPMailer.class#phpmailer" );

	// 參數說明(發送到的郵箱地址, 郵件主題, 郵件內容, 接受方的的姓名)
	//填寫要發送給管理員的郵件接受地址,請改成正確的地址
	$sendto_mail = $sendto;
	//郵件主題
	$subject = $title;
	//意見內容
	$body = $response;
	//發送郵件
	smtp_mail ( $sendto_mail, $subject, $body );

}

//下面定義一個發送郵件的函數,已經測試經過。
//$sendto_email:郵件發送地址
//$subject:郵件主題
//$body:郵件正文內容
//$sendto_name郵件接受方的姓名,發送方起的名字。通常可省。
function smtp_mail($sendto_email, $subject = null, $body = null, $sendto_name = null) {
	//新建一個郵件發送類對象
	$mail = new PHPMailer ();
	// send via SMTP
	$mail->IsSMTP ();
	// SMTP 郵件服務器地址,這裏須要替換爲發送郵件的郵箱所在的郵件服務器地址
	$mail->Host = "smtp.qq.com";
	//郵件服務器驗證開
	$mail->SMTPAuth = true;
	// SMTP服務器上此郵箱的用戶名,有的只須要@前面的部分,有的須要全名。請替換爲正確的郵箱用戶名
	$mail->Username = "xxxx@qq.com";
	// SMTP服務器上該郵箱的密碼,請替換爲正確的密碼
	$mail->Password = "xxxx";
	// SMTP服務器上發送此郵件的郵箱,請替換爲正確的郵箱  ,與$mail->Username 的值是對應的。
	$mail->From = "xxxx@qq.com";
	// 真實發件人的姓名等信息,這裏根據須要填寫
	$mail->FromName = "[".date('Y-m-d H:i:s',time ())."]需求系統郵件";
	// 這裏指定字符集!
	$mail->CharSet = "utf-8";
	$mail->Encoding = base64;
	// 收件人郵箱和姓名
	$mail->AddAddress ( $sendto_email, $sendto_name );
	//這一項根據須要而設
	$mail->AddReplyTo ( 'xxxx@qq.com', "admin" );
	// set word wrap
	//$mail->WordWrap = 50;
	// 附件處理
	//$mail->AddAttachment("/var/tmp/file.tar.gz");
	//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
	// 發送 HTML郵件
	$mail->IsHTML ( false );
	// 郵件主題
	$mail->Subject = $subject;
	// 郵件內容
	$mail->Body = $body;
	$mail->AltBody = "text/html";

	if (! $mail->Send ()) {
		return 0;
	} else {
		return 1;
	}
}

 而後再Action中直接調用函數s_mail($sendto, $title, $response)便可服務器

相關文章
相關標籤/搜索