Thinkphp 郵箱發送 、測試可用

很多小夥伴做的項目,都有郵箱註冊的、最近做個一個項目有這一個功能、上代碼   thinkphp 3.2 爲例、代碼很簡單

發送需要一個表單:

<form method="post" action="{:U('emailReg')}">
   用戶名 <input type="text" name="username"></br>
   郵箱: <input type="text" name="email"></br>
    <input type="submit">
</form>

//郵箱發送
public function emailReg(){

    $aEmailData = I('post.');
    $aEmailData['username'] = '****';
    $aEmailData['addtime'] = time(); //發送時間
    $aEmailData['auth'] = data_auth_sign($aEmailData);  //簽名
    $this->assign('authurl',U('User/emailRegister'),$aEmailData,true,true);
    $content = $this->fetch('Email:register');//發送的內容
    if(!sendMail($aEmailData['email'],'註冊郵箱激活',$content)){
        $this->error('註冊失敗');
    }else{
         $this->error('激活郵件已發送,請到郵件中激活!');
    }
}
使用PHPMailer 來發送郵件,下載鏈接 http://pan.baidu.com/s/1jHAvs3s
/**
 * 郵件發送函數
 */
  function sendMail($to, $title, $content) {

    Vendor('PHPMailer');  //把phpmailer 放到ThinkPHP/Vendor/

    Vendor('SMTP');
    $mail = new \PHPMailer(); //實例
    $mail->IsSMTP(); // 啓用SMTP
    $mail->Host='smtp.qq.com'; //smtp服務器的名稱(這裏以QQ郵箱爲例)
    $mail->SMTPAuth = true; //啓用smtp認證
    $mail->Username = '****@qq.com'; //你的郵箱名
    $mail->Password = 'hnlqaknt' ; //密碼   smtp 要開啓、生成授權碼,不知道的小夥伴百度一下如何開啓QQ smtp的
    $mail->From = '***@qq.com'; //發件人地址(也就是你的郵箱地址)
    $mail->FromName = '*****'; //發件人姓名
    $mail->AddAddress($to,"尊敬的客戶");
    $mail->WordWrap = 50; //設置每行字符長度
    $mail->IsHTML(TRUE); // 是否HTML格式郵件
    $mail->CharSet='utf-8'; //設置郵件編碼
    $mail->Subject =$title; //郵件主題
    $mail->Body = $content; //郵件內容
    $mail->AltBody = "這是一個純文本的身體在非營利的HTML電子郵件客戶端"; //郵件正文不支持HTML的備用顯示
    return($mail->Send());
}
/**
 * 數據簽名認證
 * @param  array  $data 被認證的數據
 * @return string       簽名
 */
function data_auth_sign($data) {
    //數據類型檢測
    if(!is_array($data)){
        $data = (array)$data;
    }
    ksort($data); //排序
    $code = http_build_query($data); //url編碼並生成query字符串
    $sign = sha1($code); //生成簽名
    return $sign;
}

//簽名也就是用戶點擊郵箱鏈接時候激活驗證的

在View 文件夾創建 Email/register.html /將下面代碼複製到裏面
<table cellpadding="0" cellspacing="0" width="700" align="center" style="font-family:Verdana,Arial;">
<tr>
<td style="background:#003366;line-height:30px;font-size:14px;font-weight:bold;color:#FFFFFF;">&nbsp;&nbsp;註冊激活</td>
</tr>
<tr>
<td style="border:#CCCCCC 1px solid;padding:20px 20px 20px 20px;line-height:180%;font-size:13px;">
<strong>尊敬的用戶</strong><br/>
您好!歡迎您註冊{:C('WEB_SITE_TITLE')}會員,請點擊下面的鏈接激活您的帳號(如果顯示的不是鏈接,請將下面的地址複製到瀏覽器的地址欄裏按下回車鍵)<br/>
<a href="{$authurl}" target="_blank">{$authurl}</a><br/>
帳號激活後,您即可享受{:C('WEB_SITE_TITLE')}的各項會員服務。<br/>
鏈接有效期爲 <strong style="color:red">3</strong> </td>
</tr>
<tr>
<td style="background:#333333;padding:10px;line-height:180%;font-size:12px;color:#FFFFFF;">請注意:此郵件系 <a href="{DT_PATH}" target="_blank" style="color:#FFFFFF;">{:C('WEB_SITE_TITLE')}</a> 自動發送,請勿直接回復。<br/>如果此郵件不是您請求的,請忽略並刪除!</td>
</tr>
</table>

複製上面的代碼直接可以用、



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章