In Syscp kann man ja bekanntlich keine Domains für Mails nutzen, die der Hostname sind. Diese Überprüfung ist ja recht schön und gut, aber leider ein klein wenig fehlerhaft, sofern ich das richtig verstehe. Denn die selbe Fehlermeldung erhält man auch, wenn man bei "E-Maildomain" ein "Nein" ausgewählt hat. Um dieses Problem zu beheben, kann man die /var/www/syscp/admin_domains.php Datei einmal öffnen und folgende Zeilen suchen.
[infobox]Bitte unbedingt ein Backup der betroffenen Dateien und der Syscp Datenbank machen![/infobox]
Zu beachten ist auch, dass bei einem Update von Syscp alle Änderungen vllt. neu durchgeführt werden müssen, je nachdem welche Dateien bei einem Update betroffen sind. Ich übernehme keine Garantie für die Korrektheit der Änderungen, der Einbau erfolgt auf eigene Gefahr. Alle Änderungen wurden auf einem Standard-Netcup-Debian System getestet mit Syscp Version 1.4.2. So wie ich das sehe sollten die Änderungen aber auch bei älteren Syscp Versionen funktionieren, bei neuen eher nicht.
if($_POST['domain'] == $settings['system']['hostname'])
{
standard_error('admin_domain_emailsystemhostname');
exit;
}
$domain = $idna_convert->encode(preg_replace(Array('/\:(\d)+$/', '/^https?\:\/\//'), '', validate($_POST['domain'], 'domain')));
$subcanemaildomain = intval($_POST['subcanemaildomain']);
$isemaildomain = intval($_POST['isemaildomain']);
$email_only = intval($_POST['email_only']);
$wwwserveralias = intval($_POST['wwwserveralias']);
$speciallogfile = intval($_POST['speciallogfile']);
$aliasdomain = intval($_POST['alias']);
$customerid = intval($_POST['customerid']);
$customer = $db->query_first("SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid`='" . (int)$customerid . "' " . ($userinfo['customers_see_all'] ? '' : " AND `adminid` = '" . (int)$userinfo['adminid'] . "' ") . " ");
Alles anzeigen
Diesen Code kann man dann mit folgenden Zeilen ersetzen:
/*
if($_POST['domain'] == $settings['system']['hostname'])
{
standard_error('admin_domain_emailsystemhostname');
exit;
}
*/
$domain = $idna_convert->encode(preg_replace(Array('/\:(\d)+$/', '/^https?\:\/\//'), '', validate($_POST['domain'], 'domain')));
$subcanemaildomain = intval($_POST['subcanemaildomain']);
$isemaildomain = intval($_POST['isemaildomain']);
$email_only = intval($_POST['email_only']);
$wwwserveralias = intval($_POST['wwwserveralias']);
$speciallogfile = intval($_POST['speciallogfile']);
$aliasdomain = intval($_POST['alias']);
$customerid = intval($_POST['customerid']);
$customer = $db->query_first("SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid`='" . (int)$customerid . "' " . ($userinfo['customers_see_all'] ? '' : " AND `adminid` = '" . (int)$userinfo['adminid'] . "' ") . " ");
// Patch by killerbees19
if($isemaildomain && $_POST['domain'] == $settings['system']['hostname'])
{
standard_error('admin_domain_emailsystemhostname');
exit;
}
Alles anzeigen
Falls jemand damit Probleme hat, bitte einfach auf dieses Thema antworten
Über Feedback und/oder Verbesserungsvorschläge würde ich mich wie immer freuen
MfG Christian