天天看點

ThinkPHP_phpmailer使用外部認證SMTP發送郵件

一、軟體版本

Apache Apache/2.2.22

ThinkPHP 1.5.0

php 5.3.10(enable socket)

二、phpmailer相關檔案

phpmailer.class.php

smtp.class.php

三、軟體部署方式

複制phpmailer.class.php、smtp.class.php到Web的Common(/usr/local/apache2/htdocs/Common)目錄下,

複制phpmailer.class.php到ThinkPHP\Vender(/usr/local/apache2/htdocs/ThinkPHP/Vendor)目錄下

1.common.php

<?PHP

require_once(COMMON_PATH.'phpmailer.class.php');

require_once(COMMON_PATH.'smtp.class.php');

function SendMail($address,$title,$message){

    vendor('PHPMailer.class#PHPMailer');

    $mail=new PHPMailer();

    $mail->IsSMTP();

    $body = eregi_replace("[\]",'',$message);

    $mail->CharSet='GBK';

    $mail->AddAddress($address);

    $mail->Body=$message;

    $mail->From=C('MAIL_ADDRESS');

    $mail->FromName='yyjk';

    $mail->Subject=$title;

    $mail->Host=C('MAIL_SMTP');

    $mail->SMTPAuth=true;

    $mail->Username=C('MAIL_LOGINNAME');

    $mail->Password=C('MAIL_PASSWORD');

    $mail->MsgHTML($body);

    return($mail->Send());

}

?>

2.config.php

/usr/local/apache2/htdocs/Conf

編輯Conf目錄下的config.php,在return array添加如下内容

'MAIL_ADDRESS'=>'[email protected]', // 郵箱位址

'MAIL_SMTP'=>'smtp.126.com', // 郵箱SMTP伺服器

'MAIL_LOGINNAME'=>'xxx', // 郵箱登入帳号

'MAIL_PASSWORD'=>'xxx', // 郵箱密碼

3.在Action中發送郵件

/usr/local/apache2/htdocs/Lib/Action

由于ThinkPHP會自動加載common.php中的函數,是以在需要發送郵件的時候,隻需要使用如下代碼即可。

SendMail("[email protected]","郵件标題","郵件正文");

至此,發送郵件的功能已經實作。撒花!歡迎成功配置的同學SendMail("[email protected]","我看了教程會發郵件了~~","謝啦,謝啦~~");

QQ郵箱(含foxmail)和網易的126、163都測試成功。

本文轉自 pgmia 51CTO部落格,原文連結:http://blog.51cto.com/heyiyi/1672501