0

Is it possible to get email addresses stored in LDAP and send a mail through PHP? The names will be saved in a dropdown box. Once we choose one name from the dropdown the respective email ID should be picked from LDAP and a mail should be sent to it.

0

1 Answer 1

2

Yes, you can access LDAP with PHP (LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option )

Here is the full PHP documentation on the subject: (http://php.net/manual/en/book.ldap.php)

Here is a basic example how you can access LDAP and retrieve information from PHP's documentation.

<?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>";
}
?>
Sign up to request clarification or add additional context in comments.

3 Comments

Appreciate your quick response, but this is the error I am getting ldap_search(): Search: Operations error on line 18 ldap_count_entries() expects parameter 2 to be resource, boolean given on line 21 ldap_get_entries() expects parameter 2 to be resource, boolean given on line 24 and this is the output Connecting ...connect result is Resource id #2 Binding ...Bind result is 1 Searching for (sn=S*) ...Search result is Number of entries returned is Getting entries ... Data for items returned: Closing connection I am completely new to this.
Check your binding. The function ldap_bind accepts 2 more parameters bind_rdn and bind_password if there are not provided anonymous bind is executed: php.net/manual/en/function.ldap-bind.php
Thanks! It is working now. I defined the username and password in the ldap bind for it to work :) Appreciate your assistance. :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.