很多小夥伴做的項目,都有郵箱註冊的、最近做個一個項目有這一個功能、上代碼 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;"> 註冊激活</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>
複製上面的代碼直接可以用、