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 相关文章推荐
PHP中,文件上传
Dec 06 PHP
paypal即时到账php实现代码
Nov 28 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
PHP实现字符串的全排列详解
Apr 24 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 18 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的header和asp中的redirect比较
2006/10/09 PHP
php4的session功能评述(三)
2006/10/09 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
python排序方法实例分析
2015/04/30 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
全球性的女装店:storets
2019/06/12 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
大学社团活动总结
2014/04/26 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
同学会邀请函模板
2015/01/30 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
人民的好儿女观后感
2015/06/18 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技