页面index.html

<html lang="en">
<head><title>ldap添加用户</title>
</head>
<form action="admin_f.php" method="post"  name="commentform"><table  border="0" cellpadding="0" cellspacing="0"><tr><td align="left" width="500" height="30">请输入信息 (ldap组名,帐号,邮箱,姓名,姓名,电话):<br/>
<textarea style="width:450px;height:300px;text-align:left;" type="text" name="txt_info" size="12" placeholder="请在这里输入信息,例如 group,user,mail@yoyi.com.cn,何大龙,何大龙,,13411111111"></textarea><br/><input type="submit" name="submit" value="提交"></td><td align="left">
<textarea style="width:480px;height:300px;text-align:left;" enabled>
注:ldap中各组名
全局  :people
引擎  :engine
平台  :platform
数据算法:data
运营  :operating
产品  :product
运维  :operations
前端  :UI
策划  : tactics
测试  :test
l2tp    : vpn
例:
test,test111,test111@yoyi.com.cn,测试一,测试一,13411111111
vpn,test222,test222@yoyi.com.cn,测试二,测试二,18511111111
operations,hedalong,dalong.he@yoyi.com.cn,何大龙,何大龙,13711111111
</textarea></td></tr></table>
</form>
</body>
</html>

处理页面

admin_f.php  (包含自动生成密码,添加账号,给cn添加一个mail的别名,这样既能用cn又能用mail登录)

<?php
$Patch="upload";
$user_pd="Pwd".randomPassword();
$dc='ou=people,dc=ldap,dc=com';
$object="inetOrgPerson";
$hostname="192.168.5.121:389";
$admin='cn=admin,dc=ldap,dc=com';
$admin_pw="12345678908";
$ds=ldap_connect($hostname) or die("Could not connect to LDAP server.");if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {$echo_info.= '\\n'."使用 LDAPv3  protocol version";}else{echo '\\n'."Failed to set protocol version to 3".'\\n';}$r=ldap_bind($ds,$admin,$admin_pw);if($r){$echo_info.='\\n'."连接Ldap服务器成功";}else{echo "<br/>连接Ldap服务器失败,请稍候再尝试,如失败,请联系张学磊";}if ($_REQUEST["txt_info"]){$str=explode("\n",$_REQUEST["txt_info"]);foreach ($str as $value){$string= trimall($value);if( $string == null ){continue;}$str_info=explode(",",$string);if($str_info[0] != "people"){$user_dc='ou='.$str_info[0].",".$dc;}else{$user_dc=$dc;}$username=$str_info[1];$Email=$str_info[2];$dc_address='cn='.$username.",".$user_dc;$info["cn"]=$username;$info["sn"]=$str_info[4];$info["homePhone"]=$str_info[5];$info["givenName"]=$str_info[3];$info["userpassword"]=$user_pd;$info["mail"]=$Email;$info["objectclass"]=$object;$result=ldap_add($ds,$dc_address, $info);    ##add new dc$info_1["cn"][] = $Email;$result=ldap_mod_add($ds,$dc_address,$info_1); ##add an additional value to attribute cnif($result){$echo_info.='\\n'."添加".$username."用户成功";$locale='en_US.UTF-8';setlocale(LC_ALL,$locale);putenv('LC_ALL='.$locale);system( "sh fmail.sh {$Email} {$username} {$user_pd} ");$echo_info.='\\n'."邮件".$Email."发送成功".'\\n';}else{echo "<br/>error:faile,添加信息为".var_dump($ds);}}
ldap_unbind($ds);
ldap_close($ds);
echo "<script>alert('{$echo_info}点击返回上一页!');location.href='".$_SERVER["HTTP_REFERER"]."';</script>";
}else{echo "<script>alert('输入内容不能为空!');location.href='".$_SERVER["HTTP_REFERER"]."';</script>";
}function trimall($str){$qian=array(" "," ","\t","\\n","\r");return str_replace($qian, '', $str);
}function randomPassword( $length = 8 )
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@^*()_-=+:,.";
$length = rand(10, 16);
$password = substr( str_shuffle(sha1(rand() . time()) . $chars ), 0, $length );return $password;
}
?>

邮件发送页面 fmail.sh (注:自助修改密码程序已在前文介绍过https://blog.csdn.net/zhangxueleishamo/article/details/82179902)

#!/bin/bash
mail_zt="ldap帐号已开通"mail -s $mail_zt $1 << EOFldap帐号已开通,用户名: $2,密码默认2018自助修改密码连接 http://passwd.com.cn/目前可登陆wiki,svn,git其他功能待续...wiki地址: http://wiki.com.cn/
svn地址 : http://svn.com.cn/
git地址 :http://git.com.cn/EOF

查询用户是否使用默认密码登录,如果是默认密码,则发邮件通知他修改

<?php
$user_pd="yoyi2018";
$dc='ou=people,dc=ldap,dc=com';
$object="inetOrgPerson";
$hostname="192.168.5.121:389";
$admin='cn=admin,dc=ldap,dc=com';
$admin_pw="1234567890";
$md5_yoyi='{MD5}qjbtjZhPcdmnq2T7yERcBA==';
$quchu=array("algo","dev","algo","ads","dalong","admin","root");
$ds=ldap_connect($hostname) or die( "Could not connect to LDAP server");
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {echo "使用 LDAPv3  protocol version";
}else{echo "Failed to set protocol version to 3";
}$r=ldap_bind($ds,$admin,$admin_pw);
if($r){echo "连接Ldap服务器成功";
}else{echo "<br/>连接Ldap服务器失败,请稍候再尝试,如失败,请联系张学磊";
}$justthese = array("cn","mail","userpassword");
$filter='(&(objectClass=inetOrgPerson)(cn=*)(sn=*))';
$sr=ldap_search($ds,$dc, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);for ($i=0; $i<$info["count"]; $i++) {$User_name=$info[$i]["cn"][0];$User_mail=$info[$i]["mail"][0];$User_password=$info[$i]["userpassword"][0];if($User_password == $md5_yoyi or $User_password == $user_pd){if( ! in_array($User_name,$quchu)){system( "sh fmailx.sh {$User_mail} {$User_name} ");}}}?>

mail配置

yum -y install mailx
vim /etc/mail.rc
set from=monit@yoyi.tvset smtp=mail.com.cnset smtp-auth-user=monit@com.cnset smtp-auth-password=1234567890set smtp-auth=login

LDAP批量添加php页面,包含邮件发送相关推荐

  1. 业务功能中包含邮件发送,怎么测试?

    前言 网站开发中,经常碰到需要发送邮件的场景. 比如,重置用户密码,需要执行下列流程: 用户在重置页面输入邮箱地址 进入邮箱,使用获得的重置链接打开重置页面 输入新密码 一般来说,重置链接都需要包含一 ...

  2. 在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详细教程

    0. 步骤一:使我们的QQ邮箱能够发送邮件 这里怎么说能够发送邮件呢?其实我们的邮箱都是可以发送邮件的,但是要实现在我们的网站中发送邮件,那就要设置一下我们的QQ邮箱了,因为此时我们的网站现在是作为一 ...

  3. 【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)

    扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制10个= =. 美剧党随手挤了很多单词准备导入的时候,还有从有道单词本导入的时候,都很尴尬..查了一下,还没有人写过 ...

  4. 扇贝python_【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)

    扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制10个= =. 美剧党随手挤了很多单词准备导入的时候,还有从有道单词本导入的时候,都很尴尬..查了一下,还没有人写过 ...

  5. 邮件发送程序(添加附件发送)

    目标:实现一个基于Web的可以发送附件的邮件程序.(涉及的知识点:文件上传+邮件发送) 知识点引入: 文件上传:开发的Web应用是基于HTTP协议的,工作在Request/Response模式下.在这 ...

  6. java邮件中添加excel_基于javaMail的邮件发送--excel作为附件

    基于JavaMail的Java邮件发送 Author xiuhong.chen@hand-china.com Desc 简单邮件发送 Date 2017/12/8 项目中需要根据物料资质的状况实时给用 ...

  7. android 添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...

  8. 基于python的图形化邮件发送程序(支持添加附件)

    2019独角兽企业重金招聘Python工程师标准>>> 开发环境:centos7 基于:python3.5 调用库:tkinter smtplib email linux中类outl ...

  9. android 信息添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...

最新文章

  1. 3.request response
  2. pycharm设置控制台的解释器_PyCharm 中文教程 01:运行 Python 的四种方式
  3. 数据结构之查找二叉树
  4. html配置ss,#WEB安全基础 : HTML/CSS | 0x8CSS进阶
  5. C语言加取址符的作用,C语言中指针和取地址符的关系
  6. js 实现上下拖动改变父 div 的高度,左右上下拖动动态分割孩子的宽高
  7. ORACLE的sign函数和DECODE函数
  8. 如何以学习单片机为契机,逐步成为优秀的工程师
  9. linux根据进程的运行路径,停止进程
  10. 细聊分布式ID生成方法-2
  11. HyperLogLog 命令详解
  12. Linux dnssec原理,什么是DNSSEC?DNSSEC的概念及作用
  13. robocopy 备份_备份双雄!Robocopy和XXCOPY使用详解
  14. [源码和报告分享]基于Java的局域网聊天工具
  15. 推券客微信公众号查询淘宝优惠券返利系统的设置教程
  16. 动手学深度学习(二十七)——微调(fine turning)
  17. 软件中GA、Release、RC、Beta、Alpha 各版本号的意义
  18. 前端网站开发页面重定向的几种方法
  19. 装饰公司如何做seo
  20. 中职计算机英语教学设计,中职英语教学设计三篇

热门文章

  1. cpua55和a53哪个好_OPPOA55和A53的区别有哪些?对比参数配置哪个更好用
  2. 基于JavaSSM和微信小程序的智能二维码门禁管理系统
  3. 带你Git从入门到精通
  4. 影响Google Adsense广告单价高低的因素分析获取更高的收入
  5. Jmeter循环获取JDBC查询结果及断言数据库查询结果
  6. SecTalks: BNE0x00 - Minotaur靶机
  7. 闲聊机器人实例三:python实现小姜机器人(检索式chatbot_sentence_vec_by_word_词向量句向量)
  8. 创新创业名词解释_大学生创新创业指导_知到网课答案
  9. ENGLISH资料收集(3)-英语日期的正确表达
  10. [lintcode]879. 输出赛程表