php 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; } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你的感情路不顺么?

1 你的感情路不顺么?2 扎心了!3 哈哈哈哈没毛病,差一点就信了!4 这个反杀,满分!5 一只认认真真学揉面的猫咪6 当你妈说你该出门运动下的时候。。 你点的每个赞,我都认真当成了喜欢

小算法

重新看C语言时,一个小发现,在交换两个变量的值时,一般设个变量: int a 13, b 27; int c; c a; a b; b c; 还可以不用中间变量: a a b; b a - b; a a - b; 或: a a ^ b; b b ^ a; a a ^ b; …

在zabbix中添加监控主机及Items

在http://ly36843.blog.51cto.com/3120113/1640289我们学习了zabbix的server和agent的编译安装方法 这里我们添加监控主机和监控一、添加一个主机填写监控主机的相关选项主要填写:主机名称,选择哪个组即可查看添加后的结果二、添加Items从上面的结果中我…

WPF实现聚光灯效果

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看,谢谢~。 前言效果仿照 CSS聚光灯效果 https://www.jianshu.com/p/6eae322e8e3801—效果预览更多效果请下载源码体验一、SpotLight.cs 代码如下using Syst…

python8皇后不攻击问题_Python八皇后问题(落最后一颗子)

最近在看Python基础,遇到了八皇后问题,看得整个人晕晕乎乎,甚至开始怀疑人生。问题是在一个8*8的国际象棋棋盘上摆放8个皇后,问题一是找出一个解,问题二是问有多少个解。这里我把我自己的理解写出来,只针对…

Could not find result map

"Exception: org.apache.ibatis.builder.xml.IncompleteStatementException: Could not find result map....." 在使用mybatis 3 和spring 3整合的时候,往往粗心的人会在过程中出现以上错误。--------------------------原因是: ***-mapper.xml文件中的 r…

php中unset面试题,php unset和引用——由一道php面试题引发的思考

$test"aaaaa";$abc&$test;unset($test);echo $abc;为什么结果会输出aaaaa呢,$test不是销毁了吗?$abc引用一个销毁的怎么输出的不是空白呢?查了下资料,将原因分析如下:变量存储数据时可以理解为变量的值放…

python下载matplotlib.finance模块_关于Matplotlib中No module named 'matplotlib.finance'的解决办法...

最近在研究量化分析,需要用到matplotlib中的一个库,输入from matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlc发现有报错,仔细勘查后发现有两个问题,一个是matplotlib模块已经剔除了,所以得…

托管PE文件

文/玄魂 中间语言 在.NET框架中,公共语言基础结构使用CLS来绑定不同的语言。通过要求不同的语言至少要实现CTS包含在CLS中的部分,公共语言基础结构允许不同的语言使用.NET框架。因此,在.NET框架中,所有的语言(C#、VB.N…

带你见识不一样的世界,这5部豆瓣纪录片不可错过!

全世界只有3.14 % 的人关注了爆炸吧知识纪录片一直都是增长见识又带给你力量的东西,你可能忙于学业、生活、工作而不能行万里路,但至少你还可以看纪录片,从一方屏幕看到整个世界。今天就为大家整理了5部高分纪录片,文末附领取方式…

客户要求ASP.NET Core API返回特定格式,怎么办?(续)

前言上次,我们用客户就要求API的返回值属性名必须是PascalCase(如UserName),但是这些API需要同时提供给内部系统使用,默认都是CamelCase(如userName)。其实,返回的都是JSON格式&…

打造自己博客(wordpress)的wap手机版本

这儿介绍我试用的两款插件:wordpress-mobile-edition和wp-t-wap。1.先说一下两者的区别。 wordpress-mobile-edition插件使用后,可以用手机直接访问你的博客主域名,手机会自动调整成wap版本。我的诺基亚6730上测试,自带的浏览器可…

猴子偷桃php代码,C++实现猴子吃桃的示例代码

题目详情有一天,某只猴子摘了一些桃子,当时吃了一半,又不过瘾,于是就多吃了一个。以后每天如此,到第n天想吃时,发现就只剩下一个桃子。输入n,表示到第n天剩下1个桃子,请计算第一天猴…

网吧也用VDI?

升级360以后,挨个菜单都点了一遍,虽然没啥用处,清清垃圾,升级下软件,清理下启动项还是很不错滴。 清理启动项的时候就搞笑了,发现Citrix联机插件居然被360识别为网吧无盘工作站连接中心。ICA Client我想了好…

socket python json_python实现的基于TCP的JSON数据通信

用Python写的一个多线程TCP通信实例,实现了JSON数据的传输。闲言少述,直接上代码​一、client#!/usr/bin/env python# -*- coding:utf-8 -*-#import socketimport threadingimport SocketServerimport jsondef client(ip, port, message):sock socket.s…

知乎超高赞:见识多的人,平时都在看些什么?

全世界只有3.14 % 的人关注了爆炸吧知识微信新功能总在悄咪咪更新,“拍一拍”一出,很多小伙伴都会收到各种群里面千奇百怪的“拍一拍”,到底都是谁在偷偷关注你?真正决定人与人之间的差距的,其实是我们对事物的见识与内…

django 1.3下关于静态文件staticfiles的设置

Django 1.3版本发布有些日子了,在站点被屏蔽的这段时间里学习也处于荒废状态,因此到今天才真正接触到新版下Static文件的处理设置,希望不算太晚。更改设置涉及的文件:settings.py1import os.path2HERE_PATHos.path.dirname(__file…

究竟是什么可以比反射还快实现动态调用?| Source Generators版

前言最近在公众号上看到一篇文章《究竟是什么可以比反射还快实现动态调用?》,它使用的是Newbe.ObjectVisitor,基于C#表达式树访问一个普通class的所有属性和对应的值,可以拥有比直接使用反射快上10倍的性能。就这一需求来说&#…

ofbiz中的数据模型

DelegatorDelegator是整个ofbiz中数据库访问的入口,具体实现是GenericDelegator类,在这个类中通过protected ModelReader modelReader null;protected ModelGroupReader modelGroupReader null;这两个属性变量去查找在xml文件中定义的数据模型ModelRea…

oracle 大页配置,【Oracle】Oracle如何开启大页

前言:在Linux中配置hugepage可以提高oracle的性能,减少oracle sga的页交换,类似于aix中的lagepage。为什么 使用大页?LINUX内存的默认块大小是4K如果SGA为:128Gselect 128* 1024* 1024/4 from dual;33554432个块(三千多…