Thinkphp 邮箱发送 、测试可用

阅读:807 2019-03-20 14:10:02 来源:新网

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

发送需要一个表单:

用户名
邮箱:

//邮箱发送publicfunctionemailreg(){$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

/***邮件发送函数*/functionsendmail($to,$title,$content){vendor('phpmailer');//把phpmailer放到thinkphp/vendor/vendor('smtp');$mail=newphpmailer();//实例$mail->issmtp();//启用smtp$mail->host='smtp.qq.com';//smtp服务器的名称(这里以qq邮箱为例)$mail->smtpauth=true;//启用smtp认证$mail->username='****@qq.com';//你的邮箱名$mail->password='hnlqaknt';//密码smtp要开启、生成授权码,不知道的小伙伴百度一下如何开启qqsmtp的$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());}

/***数据签名认证*@paramarray$data被认证的数据*@returnstring签名*/functiondata_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/将下面代码复制到里面

  注册激活尊敬的用户
您好!欢迎您注册{:c('web_site_title')}会员,请点击下面的链接激活您的帐号(如果显示的不是链接,请将下面的地址复制到浏览器的地址栏里按下回车键)
{$authurl}
帐号激活后,您即可享受{:c('web_site_title')}的各项会员服务。
链接有效期为3天请注意:此邮件系{:c('web_site_title')}自动发送,请勿直接回复。
如果此邮件不是您请求的,请忽略并删除!

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

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服