Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
01d825fc2a | ||
|
|
9d5d60fa88 | ||
|
|
b2ab5629e8 | ||
|
|
44ae470d7e | ||
|
|
2dc0bf2104 | ||
|
|
3b9727942a | ||
|
|
cffd16a6a1 |
@@ -200,7 +200,11 @@ if ($page == 'customers'
|
|||||||
WHERE `customerid` = :id" .
|
WHERE `customerid` = :id" .
|
||||||
($userinfo['customers_see_all'] ? '' : " AND `adminid` = :adminid")
|
($userinfo['customers_see_all'] ? '' : " AND `adminid` = :adminid")
|
||||||
);
|
);
|
||||||
$result = Database::pexecute_first($result_stmt, array('id' => $id, 'adminid' => $userinfo['adminid']));
|
$result_data = array('id' => $id);
|
||||||
|
if ($userinfo['customers_see_all'] == '0') {
|
||||||
|
$result_data['adminid'] = $userinfo['adminid'];
|
||||||
|
}
|
||||||
|
$result = Database::pexecute_first($result_stmt, $result_data);
|
||||||
|
|
||||||
if ($result['loginname'] != '') {
|
if ($result['loginname'] != '') {
|
||||||
|
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ if($page == 'overview') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$openbasedir = makeoption($lng['domain']['docroot'], 0, NULL, true) . makeoption($lng['domain']['homedir'], 1, NULL, true);
|
$openbasedir = makeoption($lng['domain']['docroot'], 0, NULL, true) . makeoption($lng['domain']['homedir'], 1, NULL, true);
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
|
||||||
|
|
||||||
$subdomain_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/domains/formfield.domains_add.php';
|
$subdomain_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/domains/formfield.domains_add.php';
|
||||||
$subdomain_add_form = htmlform::genHTMLForm($subdomain_add_data);
|
$subdomain_add_form = htmlform::genHTMLForm($subdomain_add_data);
|
||||||
@@ -615,14 +615,14 @@ if($page == 'overview') {
|
|||||||
if(preg_match('/^https?\:\/\//', $result['documentroot']) && validateUrl($idna_convert->encode($result['documentroot']))) {
|
if(preg_match('/^https?\:\/\//', $result['documentroot']) && validateUrl($idna_convert->encode($result['documentroot']))) {
|
||||||
if($settings['panel']['pathedit'] == 'Dropdown') {
|
if($settings['panel']['pathedit'] == 'Dropdown') {
|
||||||
$urlvalue = $result['documentroot'];
|
$urlvalue = $result['documentroot'];
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
|
||||||
} else {
|
} else {
|
||||||
$urlvalue = '';
|
$urlvalue = '';
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], $result['documentroot'], true);
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $result['documentroot'], true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$urlvalue = '';
|
$urlvalue = '';
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], $result['documentroot']);
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $result['documentroot']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$redirectcode = '';
|
$redirectcode = '';
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ if($page == 'overview') {
|
|||||||
redirectTo($filename, Array('page' => $page, 's' => $s));
|
redirectTo($filename, Array('page' => $page, 's' => $s));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
|
||||||
|
|
||||||
$htpasswd_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htpasswd_add.php';
|
$htpasswd_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htpasswd_add.php';
|
||||||
$htpasswd_add_form = htmlform::genHTMLForm($htpasswd_add_data);
|
$htpasswd_add_form = htmlform::genHTMLForm($htpasswd_add_data);
|
||||||
@@ -400,7 +400,7 @@ if($page == 'overview') {
|
|||||||
redirectTo($filename, Array('page' => $page, 's' => $s));
|
redirectTo($filename, Array('page' => $page, 's' => $s));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid']);
|
||||||
$cperlenabled = customerHasPerlEnabled($userinfo['customerid']);
|
$cperlenabled = customerHasPerlEnabled($userinfo['customerid']);
|
||||||
/*
|
/*
|
||||||
$options_indexes = makeyesno('options_indexes', '1', '0', '0');
|
$options_indexes = makeyesno('options_indexes', '1', '0', '0');
|
||||||
@@ -444,8 +444,8 @@ if($page == 'overview') {
|
|||||||
|| ($error404path != $result['error404path'])
|
|| ($error404path != $result['error404path'])
|
||||||
|| ($error403path != $result['error403path'])
|
|| ($error403path != $result['error403path'])
|
||||||
|| ($error500path != $result['error500path'])
|
|| ($error500path != $result['error500path'])
|
||||||
|| ($options_cgi != $result['options_cgi'])) {
|
|| ($options_cgi != $result['options_cgi'])
|
||||||
|
) {
|
||||||
inserttask('1');
|
inserttask('1');
|
||||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_HTACCESS . "`
|
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_HTACCESS . "`
|
||||||
SET `options_indexes` = :options_indexes,
|
SET `options_indexes` = :options_indexes,
|
||||||
@@ -499,4 +499,3 @@ if($page == 'overview') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
|
||||||
|
|||||||
@@ -301,7 +301,7 @@ if ($page == 'overview') {
|
|||||||
redirectTo($filename, Array('page' => $page, 's' => $s));
|
redirectTo($filename, Array('page' => $page, 's' => $s));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], '/');
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], '/');
|
||||||
|
|
||||||
if ($settings['customer']['ftpatdomain'] == '1') {
|
if ($settings['customer']['ftpatdomain'] == '1') {
|
||||||
$domainlist = array();
|
$domainlist = array();
|
||||||
@@ -422,7 +422,7 @@ if ($page == 'overview') {
|
|||||||
}
|
}
|
||||||
$homedir = makeCorrectDir($homedir);
|
$homedir = makeCorrectDir($homedir);
|
||||||
|
|
||||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], $homedir);
|
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $homedir);
|
||||||
|
|
||||||
if ($settings['customer']['ftpatdomain'] == '1') {
|
if ($settings['customer']['ftpatdomain'] == '1') {
|
||||||
$domains = '';
|
$domains = '';
|
||||||
|
|||||||
@@ -553,7 +553,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
|||||||
('panel', 'phpconfigs_hidestdsubdomain', '0'),
|
('panel', 'phpconfigs_hidestdsubdomain', '0'),
|
||||||
('panel', 'allow_theme_change_admin', '1'),
|
('panel', 'allow_theme_change_admin', '1'),
|
||||||
('panel', 'allow_theme_change_customer', '1'),
|
('panel', 'allow_theme_change_customer', '1'),
|
||||||
('panel', 'version', '0.9.31.1');
|
('panel', 'version', '0.9.31.2');
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `panel_tasks`;
|
DROP TABLE IF EXISTS `panel_tasks`;
|
||||||
|
|||||||
@@ -908,6 +908,16 @@ class FroxlorInstall {
|
|||||||
$content .= $this->_status_message('green', $this->_lng['requirements']['installed']);
|
$content .= $this->_status_message('green', $this->_lng['requirements']['installed']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check for curl extension
|
||||||
|
$content .= $this->_status_message('begin', $this->_lng['requirements']['phpcurl']);
|
||||||
|
|
||||||
|
if (!extension_loaded('curl')) {
|
||||||
|
$content .= $this->_status_message('orange', $this->_lng['requirements']['notinstalled'] . "<br />" . $this->_lng['requirements']['curldescription']);
|
||||||
|
} else {
|
||||||
|
$content .= $this->_status_message('green', $this->_lng['requirements']['installed']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// check for open_basedir
|
// check for open_basedir
|
||||||
$content .= $this->_status_message('begin', $this->_lng['requirements']['openbasedir']);
|
$content .= $this->_status_message('begin', $this->_lng['requirements']['openbasedir']);
|
||||||
$php_ob = @ini_get("open_basedir");
|
$php_ob = @ini_get("open_basedir");
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ $lng['requirements']['not_true'] = 'no';
|
|||||||
$lng['requirements']['notfound'] = 'not found';
|
$lng['requirements']['notfound'] = 'not found';
|
||||||
$lng['requirements']['notinstalled'] = 'not installed';
|
$lng['requirements']['notinstalled'] = 'not installed';
|
||||||
$lng['requirements']['activated'] = 'enabled';
|
$lng['requirements']['activated'] = 'enabled';
|
||||||
$lng['requirements']['phpversion'] = 'PHP version >= 5.2';
|
$lng['requirements']['phpversion'] = 'PHP version >= 5.3';
|
||||||
$lng['requirements']['phpmagic_quotes_runtime'] = 'magic_quotes_runtime...';
|
$lng['requirements']['phpmagic_quotes_runtime'] = 'magic_quotes_runtime...';
|
||||||
$lng['requirements']['phpmagic_quotes_runtime_description'] = 'PHP setting "magic_quotes_runtime" must be set to "Off". We have disabled it temporary for now please fix the coresponding php.ini.';
|
$lng['requirements']['phpmagic_quotes_runtime_description'] = 'PHP setting "magic_quotes_runtime" must be set to "Off". We have disabled it temporary for now please fix the coresponding php.ini.';
|
||||||
$lng['requirements']['phppdo'] = 'PHP PDO extension and PDO-MySQL driver...';
|
$lng['requirements']['phppdo'] = 'PHP PDO extension and PDO-MySQL driver...';
|
||||||
@@ -31,7 +31,9 @@ $lng['requirements']['phpxml'] = 'PHP XML-extension...';
|
|||||||
$lng['requirements']['phpfilter'] = 'PHP filter-extension...';
|
$lng['requirements']['phpfilter'] = 'PHP filter-extension...';
|
||||||
$lng['requirements']['phpposix'] = 'PHP posix-extension...';
|
$lng['requirements']['phpposix'] = 'PHP posix-extension...';
|
||||||
$lng['requirements']['phpbcmath'] = 'PHP bcmath-extension...';
|
$lng['requirements']['phpbcmath'] = 'PHP bcmath-extension...';
|
||||||
|
$lng['requirements']['phpcurl'] = 'PHP curl-extension...';
|
||||||
$lng['requirements']['bcmathdescription'] = 'Traffic-calculation related functions will not work correctly!';
|
$lng['requirements']['bcmathdescription'] = 'Traffic-calculation related functions will not work correctly!';
|
||||||
|
$lng['requirements']['curldescription'] = 'Version-check and news-feed may not work correctly!';
|
||||||
$lng['requirements']['openbasedir'] = 'open_basedir...';
|
$lng['requirements']['openbasedir'] = 'open_basedir...';
|
||||||
$lng['requirements']['openbasedirenabled'] = 'Froxlor will not work properly with open_basedir enabled. Please disable open_basedir for Froxlor in the coresponding php.ini';
|
$lng['requirements']['openbasedirenabled'] = 'Froxlor will not work properly with open_basedir enabled. Please disable open_basedir for Froxlor in the coresponding php.ini';
|
||||||
$lng['requirements']['diedbecauseofrequirements'] = 'Cannot install Froxlor without these requirements! Try to fix them and retry.';
|
$lng['requirements']['diedbecauseofrequirements'] = 'Cannot install Froxlor without these requirements! Try to fix them and retry.';
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ $lng['requirements']['not_true'] = 'nein';
|
|||||||
$lng['requirements']['notfound'] = 'nicht gefunden';
|
$lng['requirements']['notfound'] = 'nicht gefunden';
|
||||||
$lng['requirements']['notinstalled'] = 'nicht installiert';
|
$lng['requirements']['notinstalled'] = 'nicht installiert';
|
||||||
$lng['requirements']['activated'] = 'ist aktiviert.';
|
$lng['requirements']['activated'] = 'ist aktiviert.';
|
||||||
$lng['requirements']['phpversion'] = 'PHP Version >= 5.2';
|
$lng['requirements']['phpversion'] = 'PHP Version >= 5.3';
|
||||||
$lng['requirements']['phpmagic_quotes_runtime'] = 'magic_quotes_runtime';
|
$lng['requirements']['phpmagic_quotes_runtime'] = 'magic_quotes_runtime';
|
||||||
$lng['requirements']['phpmagic_quotes_runtime_description'] = 'Die PHP Einstellung "magic_quotes_runtime" muss deaktiviert sein ("Off"). Die Einstellung wurde temporär deaktiviert, bitte ändern Sie diese in der entsprechenden php.ini.';
|
$lng['requirements']['phpmagic_quotes_runtime_description'] = 'Die PHP Einstellung "magic_quotes_runtime" muss deaktiviert sein ("Off"). Die Einstellung wurde temporär deaktiviert, bitte ändern Sie diese in der entsprechenden php.ini.';
|
||||||
$lng['requirements']['phppdo'] = 'PHP PDO Erweiterung und PDO-MySQL Treiber...';
|
$lng['requirements']['phppdo'] = 'PHP PDO Erweiterung und PDO-MySQL Treiber...';
|
||||||
@@ -31,10 +31,12 @@ $lng['requirements']['phpxml'] = 'PHP XML-Erweiterung...';
|
|||||||
$lng['requirements']['phpfilter'] = 'PHP filter-Erweiterung...';
|
$lng['requirements']['phpfilter'] = 'PHP filter-Erweiterung...';
|
||||||
$lng['requirements']['phpposix'] = 'PHP posix-Erweiterung...';
|
$lng['requirements']['phpposix'] = 'PHP posix-Erweiterung...';
|
||||||
$lng['requirements']['phpbcmath'] = 'PHP bcmath-Erweiterung...';
|
$lng['requirements']['phpbcmath'] = 'PHP bcmath-Erweiterung...';
|
||||||
|
$lng['requirements']['phpcurl'] = 'PHP curl-Erweiterung...';
|
||||||
$lng['requirements']['bcmathdescription'] = 'Traffic-Berechnungs bezogene Funktionen stehen nicht vollständig zur Verfügung!';
|
$lng['requirements']['bcmathdescription'] = 'Traffic-Berechnungs bezogene Funktionen stehen nicht vollständig zur Verfügung!';
|
||||||
|
$lng['requirements']['curldescription'] = 'Versions-Prüfung und News-Feed stehen nicht vollständig zur Verfügung!';
|
||||||
$lng['requirements']['openbasedir'] = 'open_basedir genutzt wird...';
|
$lng['requirements']['openbasedir'] = 'open_basedir genutzt wird...';
|
||||||
$lng['requirements']['openbasedirenabled'] = 'Froxlor wird mit aktiviertem open_basedir nicht vollständig funktionieren. Bitte deaktivieren Sie open_basedir für Froxlor in der entsprechenden php.ini';
|
$lng['requirements']['openbasedirenabled'] = 'Froxlor wird mit aktiviertem open_basedir nicht vollständig funktionieren. Bitte deaktivieren Sie open_basedir für Froxlor in der entsprechenden php.ini';
|
||||||
$lng['requirements']['diedbecauseofrequirements'] = 'Kann Froxlor ohne diese Voraussetzungen nicht installieren! Versuchen Sie die angezeigten Problem zu beheben und versuchen Sie es erneut.';
|
$lng['requirements']['diedbecauseofrequirements'] = 'Kann Froxlor ohne diese Voraussetzungen nicht installieren! Beheben Sie die angezeigten Probleme und versuchen Sie es erneut.';
|
||||||
$lng['requirements']['froxlor_succ_checks'] = 'Alle Vorraussetzungen sind erfüllt';
|
$lng['requirements']['froxlor_succ_checks'] = 'Alle Vorraussetzungen sind erfüllt';
|
||||||
|
|
||||||
$lng['install']['lngtitle'] = 'Froxlor Installation - Sprache auswählen';
|
$lng['install']['lngtitle'] = 'Froxlor Installation - Sprache auswählen';
|
||||||
|
|||||||
@@ -2576,3 +2576,9 @@ if (isFroxlorVersion('0.9.31')) {
|
|||||||
lastStepStatus(0);
|
lastStepStatus(0);
|
||||||
updateToVersion('0.9.31.1');
|
updateToVersion('0.9.31.1');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isFroxlorVersion('0.9.31.1')) {
|
||||||
|
showUpdateStep("Updating from 0.9.31.1 to 0.9.31.2 final", true);
|
||||||
|
lastStepStatus(0);
|
||||||
|
updateToVersion('0.9.31.2');
|
||||||
|
}
|
||||||
|
|||||||
@@ -327,12 +327,43 @@ class Database {
|
|||||||
@fclose($errlog);
|
@fclose($errlog);
|
||||||
|
|
||||||
if ($showerror) {
|
if ($showerror) {
|
||||||
if (!isset($_SERVER['SHELL']) || (isset($_SERVER['SHELL']) && $_SERVER['SHELL'] == '')) {
|
|
||||||
// if we're not on the shell, output a nicer error-message
|
// include userdata.inc.php
|
||||||
$err_hint = file_get_contents(dirname($sl_dir).'/templates/'.$theme.'/misc/dberrornice.tpl');
|
require FROXLOR_INSTALL_DIR."/lib/userdata.inc.php";
|
||||||
|
|
||||||
|
// le format
|
||||||
|
if (self::$_needroot == true
|
||||||
|
&& isset($sql['root_user'])
|
||||||
|
&& isset($sql['root_password'])
|
||||||
|
&& (!isset($sql_root) || !is_array($sql_root))
|
||||||
|
) {
|
||||||
|
$sql_root = array(0 => array('caption' => 'Default', 'host' => $sql['host'], 'user' => $sql['root_user'], 'password' => $sql['root_password']));
|
||||||
|
}
|
||||||
|
|
||||||
|
// hide username/password in messages
|
||||||
|
$error_message = $error->getMessage();
|
||||||
|
$error_trace = $error->getTraceAsString();
|
||||||
|
// error-message
|
||||||
|
$error_message = str_replace($sql['password'], 'DB_UNPRIV_PWD', $error_message);
|
||||||
|
$error_message = str_replace($sql_root[0]['password'], 'DB_ROOT_PWD', $error_message);
|
||||||
|
// error-trace
|
||||||
|
$error_trace = str_replace($sql['password'], 'DB_UNPRIV_PWD', $error_trace);
|
||||||
|
$error_trace = str_replace($sql_root[0]['password'], 'DB_ROOT_PWD', $error_trace);
|
||||||
|
|
||||||
|
// clean up sensitive data
|
||||||
|
unset($sql);
|
||||||
|
unset($sql_root);
|
||||||
|
|
||||||
|
if ((isset($theme) && $theme != '')
|
||||||
|
&& !isset($_SERVER['SHELL']) || (isset($_SERVER['SHELL']) && $_SERVER['SHELL'] == '')
|
||||||
|
) {
|
||||||
|
// if we're not on the shell, output a nice error
|
||||||
|
$_errtpl = dirname($sl_dir).'/templates/'.$theme.'/misc/dberrornice.tpl';
|
||||||
|
if (file_exists($_errtpl)) {
|
||||||
|
$err_hint = file_get_contents($_errtpl);
|
||||||
// replace values
|
// replace values
|
||||||
$err_hint = str_replace("<TEXT>", $error->getMessage(), $err_hint);
|
$err_hint = str_replace("<TEXT>", $error_message, $err_hint);
|
||||||
$err_hint = str_replace("<DEBUG>", $error->getTraceAsString(), $err_hint);
|
$err_hint = str_replace("<DEBUG>", $error_trace, $err_hint);
|
||||||
|
|
||||||
$err_report_html = '';
|
$err_report_html = '';
|
||||||
if (is_array($userinfo) && (
|
if (is_array($userinfo) && (
|
||||||
@@ -347,6 +378,7 @@ class Database {
|
|||||||
// show
|
// show
|
||||||
die($err_hint);
|
die($err_hint);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
die("We are sorry, but a MySQL - error occurred. The administrator may find more information in in the sql-error.log in the logs/ directory");
|
die("We are sorry, but a MySQL - error occurred. The administrator may find more information in in the sql-error.log in the logs/ directory");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,6 @@ define('PACKAGE_LOCKED', 1);
|
|||||||
define('PACKAGE_ENABLED', 2);
|
define('PACKAGE_ENABLED', 2);
|
||||||
|
|
||||||
// VERSION INFO
|
// VERSION INFO
|
||||||
$version = '0.9.31.1';
|
$version = '0.9.31.2';
|
||||||
$dbversion = '2';
|
$dbversion = '2';
|
||||||
$branding = '';
|
$branding = '';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#protocols = imap pop3 <SSLPROTOCOLS>
|
protocols = imap pop3 <SSLPROTOCOLS>
|
||||||
listen = *
|
listen = *
|
||||||
mail_access_groups = vmail
|
mail_access_groups = vmail
|
||||||
mail_debug = no
|
mail_debug = no
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
# Address to use when sending rejection mails.
|
# Address to use when sending rejection mails.
|
||||||
# Default is postmaster@<your domain>.
|
# Default is postmaster@<your domain>.
|
||||||
#postmaster_address = postmaster@<SERVERNAME>
|
postmaster_address = postmaster@<SERVERNAME>
|
||||||
|
|
||||||
# Hostname to use in various parts of sent mails, eg. in Message-Id.
|
# Hostname to use in various parts of sent mails, eg. in Message-Id.
|
||||||
# Default is the system's real hostname.
|
# Default is the system's real hostname.
|
||||||
|
|||||||
Reference in New Issue
Block a user