2015-06-17 47 views
0

是否可以获取存储在LDAP中的电子邮件地址并通过PHP发送邮件?名称将保存在下拉框中。一旦我们从下拉菜单中选择一个名称,应该从LDAP中挑选相应的电子邮件ID,并发送邮件给它。从PHP获取电子邮件地址的PHP代码

回答

1

是的,你可以用PHP(在PHP LDAP支持不是默认启用的。你需要使用--with-LDAP [= DIR]配置选项)

以下是完整的PHP访问LDAP关于这个主题的文档:(http://php.net/manual/en/book.ldap.php

下面是一个基本的例子,介绍如何访问LDAP并从PHP文档中检索信息。

<?php 
// basic sequence with LDAP is connect, bind, search, interpret search 
// result, close connection 

echo "<h3>LDAP query test</h3>"; 
echo "Connecting ..."; 
$ds=ldap_connect("localhost"); // must be a valid LDAP server! 
echo "connect result is " . $ds . "<br />"; 

if ($ds) { 
    echo "Binding ..."; 
    $r=ldap_bind($ds);  // this is an "anonymous" bind, typically 
          // read-only access 
    echo "Bind result is " . $r . "<br />"; 

    echo "Searching for (sn=S*) ..."; 
    // Search surname entry 
    $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*"); 
    echo "Search result is " . $sr . "<br />"; 

    echo "Number of entries returned is " . ldap_count_entries($ds, $sr) . "<br />"; 

    echo "Getting entries ...<p>"; 
    $info = ldap_get_entries($ds, $sr); 
    echo "Data for " . $info["count"] . " items returned:<p>"; 

    for ($i=0; $i<$info["count"]; $i++) { 
     echo "dn is: " . $info[$i]["dn"] . "<br />"; 
     echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />"; 
     echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />"; 
    } 

    echo "Closing connection"; 
    ldap_close($ds); 

} else { 
    echo "<h4>Unable to connect to LDAP server</h4>"; 
} 
?> 
+0

感谢您的快速反应,但是这是我得到的错误 ldap_search()搜索:上线18个 ldap_count_entries操作错误()预计参数2是资源,布尔线21个 ldap_get_entries给出()预计参数2是资源,布尔上线24 给出,这是输出 连接...连接的结果是资源ID#2 绑定...绑定结果为1 搜索(SN = S *)...搜索结果是 返回的条目数是 获取条目... 返回项目的数据: 关闭连接 我对此完全陌生。 – SR1092

+0

检查您的绑定。如果没有提供匿名绑定,函数ldap_bind接受2个参数bind_rdn和bind_password:http://php.net/manual/en/function.ldap-bind.php – sensor

+0

谢谢!它正在工作。我在ldap绑定中定义了用户名和密码,以便它工作:)感谢您的帮助。 :) – SR1092

相关问题