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

科技小能手發表於2017-11-12

一、軟體版本

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到ThinkPHPVender(/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`=>`xxx@126.com`, // 郵箱地址

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

`MAIL_LOGINNAME`=>`xxx`, // 郵箱登入帳號

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



3.在Action中傳送郵件


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


由於ThinkPHP會自動載入common.php中的函式,所以在需要傳送郵件的時候,只需要使用如下程式碼即可。

SendMail(“xxx@xxx.com”,”郵件標題”,”郵件正文”);

至此,傳送郵件的功能已經實現。撒花!歡迎成功配置的同學SendMail(“yuanmouren1hao@sina.cn”,”我看了教程會發郵件了~~”,”謝啦,謝啦~~”);

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

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


相關文章