function Addlist($vhost, $listname, $admin_mail, $password) { if ($ApacheGroupWarePort == 80) { $ApacheGroupWarePort = null; } else { $ApacheGroupWarePort = ":{$ApacheGroupWarePort}"; } $unix = new unix(); $emailhost = $unix->hostname_g(); $cmd = "/usr/lib/mailman/bin/newlist --quiet --urlhost={$vhost} --emailhost={$emailhost} {$listname} {$admin_mail} {$password}"; writelogs("{$cmd}", __FUNCTION__, __FILE__, __LINE__); exec($cmd, $output); FixUrls(); }
function fixport($port, $file) { $arrayDOMS = $GLOBALS["MAILMAN_LISTS"]; $add_virtualhost[] = "VIRTUAL_HOSTS.clear()"; $sock = new sockets(); $ApacheGroupWarePort = $sock->GET_INFO("ApacheGroupWarePort"); $user = new usersMenus(); if (is_array($arrayDOMS)) { while (list($list, $array) = each($arrayDOMS)) { if ($array["domain"] == null) { continue; } $POSTFIX_STYLE_VIRTUAL_DOMAINS_CLEAN[$array["domain"]] = "'" . $array["domain"] . "'"; $VIRTUAL_HOSTS[] = "'http://{$array["wwww"]}:{$port}': '{$array["domain"]}'"; $add_virtualhost[] = "add_virtualhost('{$array["wwww"]}', '{$array["domain"]}')"; } } while (list($index, $line) = each($POSTFIX_STYLE_VIRTUAL_DOMAINS_CLEAN)) { $POSTFIX_STYLE_VIRTUAL_DOMAINS[] = $line; } if (is_array($POSTFIX_STYLE_VIRTUAL_DOMAINS)) { $POSTFIX_STYLE_VIRTUAL_DOMAINS_TEXT = "POSTFIX_STYLE_VIRTUAL_DOMAINS=[" . implode(",", $POSTFIX_STYLE_VIRTUAL_DOMAINS) . "]"; } if (is_array($VIRTUAL_HOSTS)) { $VIRTUAL_HOSTS_TEXT = "VIRTUAL_HOSTS = {" . implode(",", $VIRTUAL_HOSTS) . "}"; } $MAILMAN_DEFAULT_URL_PATTERN = $sock->GET_INFO("MAILMAN_DEFAULT_URL_PATTERN"); $MAILMAN_PUBLIC_ARCHIVE_URL = $sock->GET_INFO("MAILMAN_PUBLIC_ARCHIVE_URL"); $MAILMAN_DEFAULT_EMAIL_HOST = $sock->GET_INFO("MAILMAN_DEFAULT_EMAIL_HOST"); $MAILMAN_DEFAULT_URL_HOST = $sock->GET_INFO("MAILMAN_DEFAULT_URL_HOST"); $MAILMAN_DEFAULT_SERVER_LANGUAGE = $sock->GET_INFO("MAILMAN_DEFAULT_SERVER_LANGUAGE"); if ($MAILMAN_DEFAULT_URL_PATTERN == null) { $MAILMAN_DEFAULT_URL_PATTERN = "%s/cgi-bin/mailman/"; } if ($MAILMAN_PUBLIC_ARCHIVE_URL == null) { $MAILMAN_PUBLIC_ARCHIVE_URL = "http://%(hostname)s:{$ApacheGroupWarePort}/pipermail/%(listname)s/index.html"; } if ($MAILMAN_DEFAULT_URL_HOST == null) { $MAILMAN_DEFAULT_URL_HOST = "http://{$user->fqdn}:{$port}"; } if ($MAILMAN_DEFAULT_SERVER_LANGUAGE == null) { $MAILMAN_DEFAULT_SERVER_LANGUAGE = "en"; } $datas = explode("\n", @file_get_contents($file)); while (list($num, $ligne) = each($datas)) { if (preg_match("#DEFAULT_URL_PATTERN#", $ligne)) { unset($datas[$num]); } if (preg_match("#POSTFIX_STYLE_VIRTUAL_DOMAINS#", $ligne)) { unset($datas[$num]); } if (preg_match("#VIRTUAL_HOSTS#", $ligne)) { unset($datas[$num]); } if (preg_match("#MTA#", $ligne)) { unset($datas[$num]); } if (preg_match("#VIRTUAL_HOST_OVERVIEW#", $ligne)) { unset($datas[$num]); } if (preg_match("#add_virtualhost#", $ligne)) { unset($datas[$num]); } if (preg_match("#PUBLIC_ARCHIVE_URL#", $ligne)) { unset($datas[$num]); } if (preg_match("#DEFAULT_SERVER_LANGUAGE#", $ligne)) { unset($datas[$num]); } if (preg_match("#DEFAULT_EMAIL_HOST#", $ligne)) { if ($MAILMAN_DEFAULT_EMAIL_HOST != null) { unset($datas[$num]); } } if (preg_match("#DEFAULT_URL_HOST#", $ligne)) { if ($MAILMAN_DEFAULT_URL_HOST != null) { unset($datas[$num]); } } if (trim($ligne) == null) { unset($datas[$num]); } } $datas[] = implode("\n", $add_virtualhost); $datas[] = "DEFAULT_URL_PATTERN='{$MAILMAN_DEFAULT_URL_PATTERN}'"; $datas[] = $VIRTUAL_HOSTS_TEXT; $datas[] = "VIRTUAL_HOST_OVERVIEW = 1"; $datas[] = $POSTFIX_STYLE_VIRTUAL_DOMAINS_TEXT; $datas[] = "PUBLIC_ARCHIVE_URL= '{$MAILMAN_PUBLIC_ARCHIVE_URL}'"; $datas[] = "DEFAULT_SERVER_LANGUAGE= '{$MAILMAN_DEFAULT_SERVER_LANGUAGE}'"; $datas[] = "MTA='Postfix'"; if ($MAILMAN_DEFAULT_EMAIL_HOST != null) { $datas[] = "DEFAULT_EMAIL_HOST='{$MAILMAN_DEFAULT_EMAIL_HOST}'"; } if ($MAILMAN_DEFAULT_URL_HOST != null) { $datas[] = "DEFAULT_URL_HOST='{$MAILMAN_DEFAULT_URL_HOST}'"; } echo "Save {$file} line: " . __LINE__ . "\n"; @file_put_contents($file, implode("\n", $datas)); FixUrls(); }