邮箱密码
首先要自己配置下自己所使用的smtp服务器,这里使用的是QQ的//邮箱配置项
'SWIFT_HOST'=>'smtp.qq.com',
'SWIFT_USERNAME'=>'[email protected]',
'SWIFT_PASSword'=>'abrsjjqtpfgndccc',
// 验证验证码
// 通过验证码后 查找邮箱 然后将该邮箱对应的修改密码链接发过去
// 该链接链接到一个修改方法 通过寻找verify 找到用户 修改其密码
public function mima(){
// 并且设定好十分钟后才可以再发链接到邮箱
if(!empty($_POST)){
$Reader = D('reader');
$where = array();
$where['reader_email'] = I('post.reader_email');
$where['reader_name'] = I('post.reader_name');
$rst = $Reader -> where($where) -> find();
if($rst == false){
$this->redirect('Index/mima','',0.01,'<script>alert("输入错误");</script>');
exit;
}
// 如果通过了验证 账号 和 邮箱 则继续 否则redirect + 提示验证码错误
$where = array();
$where['reader_email'] = $_POST['reader_email'];
$reader = $Reader -> where($where)->find();
// 如果存在该邮箱属于用户则继续
$email = $reader['reader_email'];
$username = $reader['reader_name'];
$userpwd = $reader['reader_pwd'];
$id = $reader['id'];
$modtime = time();
//创建用于激活识别码
$token = md5($username.$userpwd.$email.$modtime);
//过期时间为10分钟后
$token_exptime = time()+10*60;
$dt = array(
'id' => $id,
'token' => $token,
'token_exptime' => $token_exptime,
);
$link = $Reader -> save($dt);
if($link){
$url = U('active');//用于激活的地址
$end = strrpos($url,'.');
$url = substr($url,0,$end);
$emailsubject = "XXXXX";//邮箱标题
//邮箱内容
$emailbody = "尊敬的".$username.":
<br/>请点击链接修改您的帐号密码。
<br/>
<a href='".__APPURL__."/$url?verify=".$token."' target='_blank'>".__APPURL__."/$url?verify=".$token."</a>
<br/>如果以上链接无法点击,请将它复制到你的浏览器地址栏中进入访问,该链接10分钟内有效。<br/>
如果此次激活请求非你本人所发,请忽略本邮件。
<br/>
<p style='text-align:right'>-------- 敬上</p>";
$rs = send_email($email,$emailsubject,$emailbody);
//send_email(邮箱,邮箱标题,邮箱内容);
if($rs){
$msg = '恭喜您,提交成功!请登录到您的邮箱修改您的密码!';
}else{
$msg = '提交失败!';
}
$this->redirect('Index/index',array(),0.00001,"<script>alert('$msg');</script>");
exit;
}
}else{
$this->display();
}
}
//修改地址
public function active(){
$Reader = D('reader');
if(!empty($_POST)){
$Reader->create();
$rst = $Reader->save();
if($rst){
// 记录你认为必要的session
$this->redirect('Index/index','',0.001,'<script>alert("修改成功");</script>');
exit;
}else{
$this->redirect('Index/index','',0.001,'<script>alert("修改失败");</script>');
exit;
}
// 根据token查找
// if OK 并且链接未过时 则提供修改页面 并且修改到token对应上
}else{
$verify = stripslashes(trim($_GET['verify']));
$time = time();
$where['token'] = $verify;
$reader = $Reader -> where($where)->find();
if($reader['token_exptime'] < $time){
// 超时
$this->redirect('Index/index','',0.001,'<script>alert("该链接已经失效");</script>');
exit;
}
$this->assign('id',$reader['id']);
$this->display();
}
}
/**
* send email by swiftmailer
*
* @param string|array $to 收件人
* @param string $subject 主题
* @param string $content 内容
* @return int 发送的邮件数目
*/
function send_email($to, $subject, $content)
{
vendor('swiftmailer.swift_required');
// $transport = Swift_SmtpTransport::newinstance(C('SWIFT_HOST'), 25)
$transport = Swift_SmtpTransport::newInstance(C('SWIFT_HOST'), 465, 'ssl')
->setUsername(C('SWIFT_USERNAME'))
->setPassword(C('SWIFT_PASSWORD'));
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject($subject)
->setFrom(array(C('SWIFT_USERNAME') => '某某某'))
->setTo($to)
->setbody($content, 'text/html', 'utf-8');
return $mailer->send($message);
}
相关阅读
【商/家/徽/信/10484866】专业获取微信密码,开房记录查询,手机定位,通话记录查询,查询微信聊天记录,非常靠谱!互联网科技的高速发展
密码学在邮件中的应用由来已久,信息加密一直伴随着互联网的发展。在第二次世界大战中,纳粹德国发明了精密的机械加密机Enigma用于电
python3学习笔记之十——利用smtp,通过163邮箱发送邮件
通过smtp发送邮件一直提示在登录的时候身份认证失败,百度了一下才知道163邮箱需要在设置里面开通smtp服务,并且设置授权码,通过第三
人民网新闻投稿邮箱地址是多少?seo实验室传媒专注软文营销多年为您解惑,人民网的投稿邮箱地址是[email protected]。如果是重大
淘宝客丢单如何找回,淘宝客推广链接失效或淘宝联盟后台统计不到,淘宝客丢单如何找回呢?淘宝客丢单如何找回的情况,都是相应的解决方