function aliases_users() { $ldap = new clladp(); $users = new usersMenus(); $main = new maincf_multi(); if ($GLOBALS["VERBOSE"]) { echo "*** aliases_users() ***\n"; } $filter = "(&(objectClass=userAccount)(uid=*))"; $attrs = array("uid", "mail"); $trap_uid = "uid"; $dn = "dc=organizations,{$ldap->suffix}"; if ($ldap->EnableManageUsersTroughActiveDirectory) { $ldapAD = new ldapAD(); $filter = "(&(objectClass=user)(samaccountname=*))"; $attrs = array("samaccountname", "mail"); $trap_uid = "samaccountname"; $dn = "{$ldapAD->suffix}"; $hash = $ldapAD->Ldap_search($dn, $filter, $attrs); } else { $hash = $ldap->Ldap_search($dn, $filter, $attrs); } for ($i = 0; $i < $hash["count"]; $i++) { $uid = trim($hash[$i][$trap_uid][0]); if (strpos($uid, "\$") > 0) { continue; } if ($uid == null) { continue; } if (isset($hash[$i]["mail"])) { for ($t = 0; $t < $hash[$i]["mail"]["count"]; $t++) { $mail = $hash[$i]["mail"][$t]; $mail = repair_addr($mail); $mail = trim($mail); $mail = str_replace("\r", "", $mail); $mail = str_replace("\n", "", $mail); if ($mail == null) { continue; } if (!isset($GLOBALS["virtual_alias_maps_mem"][$mail])) { if (!isset($GLOBALS["virtual_alias_maps_emailing"][$mail])) { $GLOBALS["virtual_alias_maps_emailing"][$mail] = null; } if ($GLOBALS["virtual_alias_maps_emailing"][$mail] == null) { $GLOBALS["virtual_alias_maps"][$mail] = "{$mail}\t{$mail}"; } } $GLOBALS["virtual_alias_maps_mem"][$mail] = true; if (!isset($GLOBALS["alias_maps_mem"][$uid])) { $uid = trim($uid); $uid = str_replace("\r", "", $uid); $uid = str_replace("\n", "", $uid); if ($uid == null) { continue; } if (!preg_match("#.+?@#", $uid)) { $GLOBALS["alias_maps"][] = "{$uid}:{$mail}"; } $GLOBALS["alias_maps_mem"][$uid] = true; } $GLOBALS["virtual_mailbox"] = "{$mail}\t{$uid}"; } } else { if ($GLOBALS["VERBOSE"]) { echo "Skipping \"{$uid}\" no \"mail\" attribute... in " . basename(__FILE__) . " Line: " . __LINE__ . "\n"; } } } $filter = "(&(objectClass=transportTable)(cn=*@*))"; $attrs = array("cn"); $dn = "cn=PostfixRobots,cn=artica,{$ldap->suffix}"; $hash = $ldap->Ldap_search($dn, $filter, $attrs); for ($i = 0; $i < $hash["count"]; $i++) { $cn = $hash[$i]["cn"][0]; if (preg_match("#(.+?)@#", $cn, $re)) { $map = $re[1]; if (!$GLOBALS["alias_maps_mem"][$map]) { $GLOBALS["alias_maps"][] = "{$map}:{$cn}"; $GLOBALS["alias_maps_mem"][$map] = true; } } } $GLOBALS["virtual_alias_maps"] = $main->mailman_virtual($GLOBALS["virtual_alias_maps"]); $sock = new sockets(); $PostfixPostmaster = trim($sock->GET_INFO("PostfixPostmaster")); if ($PostfixPostmaster == null) { return; } $myhostname = trim($sock->GET_INFO("myhostname")); if ($myhostname == null) { $myhostname = $users->hostname; } preg_match("#(.+?)@#", $PostfixPostmaster, $re); $PostfixPostmaster_prefix = trim($re[1]); $myhostname = trim($myhostname); $GLOBALS["virtual_alias_maps"]["{$PostfixPostmaster_prefix}@{$myhostname}"] = "{$PostfixPostmaster_prefix}@{$myhostname}\t{$PostfixPostmaster}"; $GLOBALS["virtual_alias_maps"][$PostfixPostmaster] = "{$PostfixPostmaster}\t{$PostfixPostmaster}"; $GLOBALS["virtual_alias_maps"]["root@{$myhostname}"] = "root@{$myhostname}\t{$PostfixPostmaster}"; $GLOBALS["virtual_alias_maps"]["postmaster"] = "postmaster\t{$PostfixPostmaster}"; $GLOBALS["virtual_alias_maps"]["MAILER-DAEMON"] = "MAILER-DAEMON\t{$PostfixPostmaster}"; $GLOBALS["virtual_alias_maps"]["root"] = "root\t{$PostfixPostmaster}"; /*$sql="SELECT `email` FROM postfix_relais_domains_users"; $q=new mysql(); $results=$q->QUERY_SQL($sql,"artica_backup"); if(!$q->ok){echo "$q->mysql_error\n";} while($ligne=@mysql_fetch_array($results,MYSQL_ASSOC)){ $GLOBALS["virtual_alias_maps"][$ligne["email"]]="{$ligne["email"]}\t{$ligne["email"]}"; } * see trusted_smtp_domain DOMAIN_TRUSTED_NO_USERDB_TEXT */ $GLOBALS["alias_maps"][] = "postmaster:{$PostfixPostmaster}"; $GLOBALS["alias_maps"][] = "MAILER-DAEMON:{$PostfixPostmaster}"; $GLOBALS["alias_maps"][] = "root:{$PostfixPostmaster}"; if ($PostfixPostmaster_prefix != null) { if (!isset($GLOBALS["alias_maps_mem"][$PostfixPostmaster_prefix])) { $GLOBALS["alias_maps"][] = "{$PostfixPostmaster_prefix}:{$PostfixPostmaster}"; } } }