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>

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

 
 

猜你喜欢

转载自blog.csdn.net/hua950327/article/details/77977522