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

 更新时间:2016年05月11日 10:41:21   作者:十一文  
这篇文章主要介绍了php通过smtp邮件验证登陆的方法,涉及php通过socket针对SMTP邮件服务器进行连接、读写、验证等相关操作技巧,需要的朋友可以参考下

本文实例讲述了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 socket用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《PHP数学运算技巧总结》、《PHP图形与图片操作技巧汇总》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • PHP Array 数组详细介绍

    PHP Array 数组详细介绍

    这篇文章主要介绍了PHP Array数组详细介绍,PHP中的array实际上是一个有序映射。映射是一种把 values 关联到keys的类型,更多详情需要的小伙伴可以参考一下
    2022-09-09
  • php中的常用魔术方法总结

    php中的常用魔术方法总结

    以下是对php中的常用魔术方法进行了详细的总结介绍,需要的朋友可以过来参考下
    2013-08-08
  • PHP字符串处理的10个简单方法

    PHP字符串处理的10个简单方法

    PHP处理字符串的能力非常强大,方法也是多种多样,但有的时候你需要选择一种最简单且理想的解决方法。文章列举了10个PHP中常见的字符串处理案例,并提供了相对应的最理想的处理方法。
    2010-06-06
  • 使用NetBeans + Xdebug调试PHP程序的方法

    使用NetBeans + Xdebug调试PHP程序的方法

    前些天发现通过Notepad++的DBGP插件结合PHP的xdebug扩展可以实现PHP文件调试,同时,介绍说包含了单步调试、监视变量还有跨文件调试。
    2011-04-04
  • 利用PHPExcel读取Excel的数据和导出数据到Excel

    利用PHPExcel读取Excel的数据和导出数据到Excel

    本篇文章主要介绍了利用PHPExcel读取Excel的数据和导出数据到Excel的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-05-05
  • PHP实现上传文件并存进数据库的方法

    PHP实现上传文件并存进数据库的方法

    这篇文章主要介绍了PHP实现上传文件并存进数据库的方法,涉及php文件上传所涉及的文件与表单操作及数据库操作相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-07-07
  • PHP反射实际应用示例

    PHP反射实际应用示例

    这篇文章主要介绍了PHP反射实际应用,结合实例形式分析了php使用反射实现自动生成文档、实现MVC架构、实现单元测试等具体应用操作技巧,需要的朋友可以参考下
    2019-04-04
  • php创建桌面快捷方式实现方法

    php创建桌面快捷方式实现方法

    这篇文章主要介绍了php创建桌面快捷方式实现方法,需要的朋友可以参考下
    2015-12-12
  • 如何在smarty中增加类似foreach的功能自动加载数据

    如何在smarty中增加类似foreach的功能自动加载数据

    本篇文章是对在smarty中增加类似foreach的功能自动加载数据进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP面向对象五大原则之开放-封闭原则(OCP)详解

    PHP面向对象五大原则之开放-封闭原则(OCP)详解

    这篇文章主要介绍了PHP面向对象五大原则之开放-封闭原则(OCP),简单分析了PHP面向对象开放-封闭原则(OCP)的概念、原理、使用方法及相关注意事项,需要的朋友可以参考下
    2018-04-04

最新评论