ispCP – Externer Mailserver

Mit einer ispCP 1.1.0 hatte ich das Problem, dass ein Kunde die Mail weiterhin auf einem anderen Mailserver (t-mail) verwalten wollte. Mails, die von der Website dann verschickt werden sollten wurden allerdings versucht lokal zuzustellen – natürlich ohne Erfolg.

Die Lösung des Problems ist recht komplex:

 

  • Ausschalten der Mailaccounts in den Domaineinstellungen für die Domain beim Reseller
  • Einschalten von manuellen Domain-Einträgen
  • Eintragung des MX im internen Domainserver für den User

Das ganze geht allerdings leider nicht ohne Änderung am Source vom ispCP

  • Neue Datei /etc/ispcp/bind/parts/db_e_nomail.tpl
$TTL 12H
$ORIGIN {DMN_NAME}.
@               IN              SOA             ns1.{DMN_NAME}. postmaster.{DMN_NAME}. (
; dmn [{DMN_NAME}] timestamp entry BEGIN.
                {TIMESTAMP}     ; Serial
; dmn [{DMN_NAME}] timestamp entry END.
                8H              ; Refresh
                2H              ; Retry
                7D              ; Expire
                1D              ; Minimum TTL
)
                IN              NS              ns1.{DMN_NAME}.
                IN              NS              ns2.{DMN_NAME}.

{DMN_NAME}.     IN              A               {DMN_IP}
www             IN              A               {DMN_IP}
{DMN_NAME}.     IN              TXT             "v=spf1 a mx ip4:{DMN_IP} ip4:{BASE_SERVER_IP} ~all"
localhost       IN              A               127.0.0.1
ns1             IN              A               {BASE_SERVER_IP}
ns2             IN              A               {SECONDARY_DNS_IP}
; CNAME for VHCS compatibility
ns              IN              CNAME           ns1
; CNAME for web transfer
ftp             IN              CNAME           www

; sub [{SUB_NAME}] entry BEGIN.
; sub [{SUB_NAME}] entry END.

; dns [{MANUAL_DNS_ID}] entry BEGIN.
; dns [{MANUAL_DNS_ID}] entry END.

 

  • Änderung an /var/www/ispcp/engine/ispcp-dmn-mngr
--- /tmp/ispcp/var/www/ispcp/engine/ispcp-dmn-mngr      2013-10-29 14:31:13.932492829 +0100
+++ /var/www/ispcp/engine/ispcp-dmn-mngr        2014-03-04 12:49:42.582480699 +0100
@@ -347,6 +347,7 @@
        # Get needed data
        my $rs;
+       my $dmnMailAccLmt = @$data[8];
        my $dmnStatus = @$data[13];
        my ($dmnName, $dmnIp) = (@$data[1], @$data[21]);
        my $baseServerIp = $main::cfg{'BASE_SERVER_IP'};
@@ -354,9 +355,15 @@
        # Get needed templates
        my ($tplDbEntries);
-       ($rs, $tplDbEntries) = get_file(
-               "$main::cfg{'CONF_DIR'}/bind/parts/db_e.tpl"
-       );
+ if ( $dmnMailAccLmt < 0) {
+  ($rs, $tplDbEntries) = get_file(
+   "$main::cfg{'CONF_DIR'}/bind/parts/db_e_nomail.tpl"
+  );
+ } else {
+  ($rs, $tplDbEntries) = get_file(
+   "$main::cfg{'CONF_DIR'}/bind/parts/db_e.tpl"
+  );
+ }
        return $rs if($rs != 0);
 
        # Prepare templates

 

Schreibe einen Kommentar