/** * Mail enable a contact * Allows email to be sent to them through Exchange * * @param string $distinguishedName The contact to mail enable * @param string $emailAddress The email address to allow emails to be sent through * @param string $mailNickname The mailnickname for the contact in Exchange. If NULL this will be set to the display name * @return bool */ public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL) { if ($distinguishedName === NULL) { return "Missing compulsory field [distinguishedName]"; } if ($emailAddress === NULL) { return "Missing compulsory field [emailAddress]"; } if ($mailNickname !== NULL) { // Find the dn of the user $user = $this->adldap->contact()->info($distinguishedName, array("cn", "displayname")); if ($user[0]["displayname"] === NULL) { return false; } $mailNickname = $user[0]['displayname'][0]; } $attributes = array("email" => $emailAddress, "contact_email" => "SMTP:" . $emailAddress, "exchange_proxyaddress" => "SMTP:" . $emailAddress, "exchange_mailnickname" => $mailNickname); // Translate the update to the LDAP schema $mod = $this->adldap->adldap_schema($attributes); // Check to see if this is an enabled status update if (!$mod) { return false; } // Do the update $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod); if ($result == false) { return false; } return true; }