Thinkphp 邮箱发送 、测试可用

  • 来源:新网
  • 更新日期:2018-03-13

摘要:Thinkphp 邮箱发送 、测试可用

很多小伙伴做的项目,都有邮箱注册的、最近做个一个项目有这一个功能、上代码 thinkphp 3.2 为例、代码很简单

t01812bc29273075ad1.jpg

发送需要一个表单:

 

<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>

复制上面的代码直接可以用、