PHP是自帶可以發(fā)送郵件的Mail()函數(shù)的,但需要在php.ini配置,本文將介紹一種簡單的通過PHPMailer發(fā)送郵件的方法.
而PHPMailer是一個用于發(fā)送電子郵件的PHP函數(shù)包,它可以使用SMTP的方法通過163、QQ郵箱等第三方服務(wù)器發(fā)送郵件,這樣還有一個好處,就是這些大型郵箱發(fā)出的郵件一般不會被屏蔽.
另外說明一下,ThinkPHP是一個開源的PHP框架,如果只是尋找PHP中發(fā)送郵件的方法而誤入此地的同學(xué)請繼續(xù)Google百度.
本文所使用的是ThinkPHP 2.1版和 PHPMailer 5.1版.(后者建議您直接從本博下載,因為我們不能保證下面的代碼在所有版本的PHPMailer中都能正常運行)
下面是具體步驟:
第一步、添加PHPMailer類庫
將下載后的文件解壓,將PHPMail目錄移動至ThinkPHP目錄中的Vendor內(nèi).(請確保class.phpmailer.php文件就在ThinkPHP/Vendor/PHPMailer/class.phpmailer.php)
第二步、添加發(fā)送郵件函數(shù)
在項目目錄中的Common文件夾中的common.php文件(如果沒有請創(chuàng)建)添加如下代碼:
- <?php function SendMail($address,$title,$message) { vendor('PHPMailer.class#PHPMailer'); $mail=new PHPMailer(); // 設(shè)置PHPMailer使用SMTP服務(wù)器發(fā)送Email $mail->IsSMTP(); // 設(shè)置郵件的字符編碼,若不指定,則為'UTF-8' $mail->CharSet='UTF-8'; // 添加收件人地址,可以多次使用來添加多個收件人 $mail->AddAddress($address); // 設(shè)置郵件正文 $mail->Body=$message; // 設(shè)置郵件頭的From字段。 $mail->From=C('MAIL_ADDRESS'); // 設(shè)置發(fā)件人名字 $mail->FromName='LilyRecruit'; // 設(shè)置郵件標(biāo)題 $mail->Subject=$title; // 設(shè)置SMTP服務(wù)器。 $mail->Host=C('MAIL_SMTP'); // 設(shè)置為"需要驗證" $mail->SMTPAuth=true; // 設(shè)置用戶名和密碼。 $mail->Username=C('MAIL_LOGINNAME'); $mail->Password=C('MAIL_PASSWORD'); // 發(fā)送郵件。 return($mail->Send()); } ?>
第三步、配置郵箱信息
編輯Conf目錄下的config.php,在return array添加如下內(nèi)容
- 'MAIL_ADDRESS'=>'[email protected]', // 郵箱地址 'MAIL_SMTP'=>'smtp.126.com', // 郵箱SMTP服務(wù)器 'MAIL_LOGINNAME'=>'xxx', // 郵箱登錄帳號 'MAIL_PASSWORD'=>'xxx', // 郵箱密碼
其中的郵箱登錄帳號可能需要包括@后面的內(nèi)容,請自行嘗試^_^
第四步、在Action中發(fā)送郵件
由于ThinkPHP會自動加載common.php中的函數(shù),所以在需要發(fā)送郵件的時候,只需要使用如下代碼即可.
SendMail("[email protected]","郵件標(biāo)題","郵件正文");
至此,本教程已經(jīng)結(jié)束,歡迎成功配置的同學(xué)
SendMail("[email protected]","我也會用ThinkPHP發(fā)送郵件啦","哇啦哇啦~~");
還有一些說明:
如果郵件正文中需要換行怎么辦呢?其實,最簡單的方法是——
SendMail("[email protected]","郵件標(biāo)題","郵件正文 我換行啦~~!");
QQ郵箱(含foxmail)和網(wǎng)易的126、163都測試成功,因為近期訪問GMail比較吃力,所以沒有測試,聽說GMail要求必須使用SSL,有這方面需要的同學(xué)自行谷歌百度PHPMailer的方法.
新聞熱點
疑難解答
圖片精選