php通过smtp邮件验证登陆的方法


Posted in PHP onMay 11, 2016

本文实例讲述了php通过smtp邮件验证登陆的方法。分享给大家供大家参考,具体如下:

内网的系统为了统一账号,都采用用邮件账号登陆的方式,所以有了以下程序

/**
* 通过邮件 验证登陆
* 这里要明白的是用户名是 带域名的:aaa@163.com
*/
function valideEmailLogin($user, $pass, $smtp_server= 'smtp.163.com', $port=25)
{
$handle = fsockopen($smtp_server, $port);
if(!$handle)
return false;
$mes = fgets($handle);
//echo $mes;
if(!$mes){
fclose($handle);
return false;
}
$status = explode(" ",$mes);
if($status[0] != 220) { //链接服务器失败
fclose($handle);
return false;
}
fwrite($handle, 'HELO mystore'."\r\n"); //表明身份,这里的mystore是随便写的
$mes = fgets($handle);
//echo $mes;
if(!$mes){
fclose($handle);
return false;
}
$status = explode(" ",$mes);
if($status[0] != 250) { //服务器HELO失败
fclose($handle);
return false;
}
fwrite($handle, 'AUTH LOGIN'."\r\n");
$mes = fgets($handle);
//echo $mes;
if(!$mes){
fclose($handle);
return false;
}
$status = explode(" ",$mes);
if($status[0] != 334) { //请求验证登陆失败
fclose($handle);
return false;
}
fwrite($handle,base64_encode($user)."\r\n");
$mes = fgets($handle);
//echo $mes;
if(!$mes){
fclose($handle);
return false;
}
$status = explode(" ",$mes);
if($status[0] != 334) { //验证用户名失败
fclose($handle);
return false;
}
fputs($handle,base64_encode($pass)."\r\n"); 
$mes = fgets($handle);
//echo $mes;
if(!$mes){
fclose($handle);
return false;
}
$status = explode(" ",$mes);
fclose($handle);
if($status[0] != 235) { //验证密码失败
return false;
}else{
return true;
}
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
生成sessionid和随机密码的例子
Oct 09 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
php之XML转数组函数的详解
Jun 07 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
php调整服务器时间的方法
Apr 03 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
php计算整个目录大小的方法
Jun 01 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 PHP
PHP中的自动加载操作实现方法详解
Aug 06 PHP
Smarty变量用法详解
May 11 #PHP
基于PHP实现商品成交时发送短信功能
May 11 #PHP
Smarty环境配置与使用入门教程
May 11 #PHP
理解php依赖注入和控制反转
May 11 #PHP
php结合web uploader插件实现分片上传文件
May 10 #PHP
配置Nginx+PHP的正确思路与过程
May 10 #PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 #PHP
You might like
PHP 图像尺寸调整代码
2010/05/26 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
php简单截取字符串代码示例
2016/10/19 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
PDO::rollBack讲解
2019/01/29 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
关于js陀螺仪的理解分析
2019/04/11 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
餐饮管理自我介绍信
2014/01/15 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
2014企业年终工作总结
2014/12/23 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
2016年校长新年寄语
2015/08/17 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
总结Python变量的相关知识
2021/06/28 Python