Roundcube (eigene Installation) - verschiedene Postausgangs-Server

  • Hallo allerseits,


    vielleicht verwenden ja auch andere hier eine eigene Roundcube-Installation, um ihre Emails zu verwalten, und vielleicht sollen damit ja auch andere Postfächer, als nur die auf dem eigenen Webspace, bedient werden.

    Da Netcup in letzter Zeit die PHP-Mailfunktion zunehmend deaktviert, ist man nun auch in Roundcube darauf angewiesen, neben dem Posteingangsserver auch jeweils einen Postausgangsserver festzulegen, und dies ist in Roundcube bislang wohl nur für einen einzigen je Installation vorgesehen - es sei denn, die Postausgangsserver (SMTP) entsprechen exakt den Posteingangsservern (IMAP).


    Da ich im WWW nichts unkompliziert Anwendbares finden konnte und auch keine Umgehung über Emailumleitungen und mehrere Identitägen in Roundcube wählen wollte (bzw. konnte, da z.B. Emails von Web.de auf vielen Serveren genau auf ihre Herkunft geprüft werden), habe ich mir eine eigene einfache Umgehung überlegt. Vielleicht hilft es ja dem einen oder anderen, der nicht so tief in PHP drin steckt und daher sowas nicht einfach selbst aus dem Ärmel schütteln kann.


    Die bei mir betroffene Roundcube-Version ist 1.3.8 . Einige darin enthaltene SMTP-Konfigurationsparameter habe ich in einer früheren Version nicht in der entsprechenden config.inc.php finden können, keine Ahnung warum. Ich kann mir nicht vorstellen, dass kurz zuvor noch kein SMTP-Mailversand in Roundcube möglich war, daher sollten diese Parameter evtl. auch in älteren Versionen funktionieren, aber das muss jeder selbst prüfen.


    Voraussetzungen der betroffenen Umsetzung:


    Roundcube selbst liegt im Unterverzeichnis mit dem Verzeichnisnamen "@", der Aufruf von Roundcube erfolgt nach Einstellen des gewählten Postausgangsservers mittels Klick auf den zugehörigen Link auf der neuen Auswahlseite im "Hauptverzeichnis".

    (Bei anderen Konstellationen kann jeder sicher leicht die entsprechenden Anpassungen in den folgenden Dateien selbst vornehmen.)


    In der Roundcube-Config im config- Verzeichnis von Roundcube wird lediglich die Einstellung des Postausgangsservers (SMTP) umgestellt und damit ein Auslesen des Postausgangsserver-Namens aus einer neu zu erstellenden Datei (siehe weiter unten) bewirkt:

    PHP: config.inc.php
    <?php
    
    // ... weitere Parameter
    
    $config['smtp_server'] = @file_get_contents('../server.conf');
    
    // ... weitere Parameter
    
    ?>


    Die neu zu erstellende Datei "server.conf" im Hauptverzeichnis kann leer sein oder einen beliebigen Inhalt haben. Sie wird dann überschrieben.


    Im "Hauptverzeichnis" (siehe oben) liegt weiterhin die neu hinzugefügte Konfigurationsdatei "serverconfig.inc.php", die die Namen aller zulässigen Postausgangsserver enthält:

    PHP: serverconfig.inc.php
    <?php
    
      $serverconfig = array(   // Anpassen!
        'NC' => 'mx????.netcup.net',
        'Web' => 'tls://smtp.web.de:587'
      );
    
    ?>

    Und dort liegt auch die Index-Datei mit dem eigentlichen Skript:

    Dieses Skript erzeugt ein Auswahlmenü mit den zulässigen Postausgangsservers und schreibt den gewählten dann in die Datei "server.conf", wo er dann von der Roundcube-Config ausgelesen wird.


    Durch dieses Vorgehen ist der Eingriff in die eigentliche Roundcube-Installation nur minimal und kann nach einem Update ganz leicht erneuert werden. Dies war mir sehr wichtig. Natürlich wird jemand mit viel PHP-Erfahrung auch eine Erweiterung analog zur Verwendung der IMAP-Server direkt in Roundcube einprogrammieren können, ohne meine Umgehungslösung zu benötigen. Aber mir schien das mit meinen Kenntnissen nicht aussichtsreich genug - und sehr unangenehm bei späteren Updates.


    Grüsse und viel Erfolg beim Übernehmen!

    Samci

    "... Das Fernsehen präsentiert als Ideal den totalen Durchschnittsmenschen. ...der Zuschauer sieht das Abbild seiner eigenen Beschränktheit glorifiziert und offiziell mit den Insignien einer nationalen Autorität ausgezeichnet. ..." (Umberto Eco) - gefunden bei Ranga Yogeshwar


    Und ganz aktuell: "Selbst Zwerge werfen lange Schatten, wenn die Sonne der Kultur tief steht" (Karl Krauss)

  • Darüber bin ich auch schon mal gestolpert. $config['default_host'] kann ein Array entgegen nehmen, $config['smtp_server'] dagegen nicht.


    Wenn du nur Mailserver ansprechen möchtest, bei denen der Prefix der Domain des SMTP-Servers gleich ist, kann man das auch so machen:


    PHP: config.inc.php
    $config['default_host'] = array(
      'ssl://imap.web.de' => 'WEB.DE',
      'ssl://imap.gmx.net' => 'GMX',
      'ssl://outlook.office365.com' => 'Outlook.com',
    );
    
    $config['smtp_server'] = 'tls://smtp.%z';

    %z - IMAP domain (IMAP hostname without the first part)


    Netcup hat da aber leider ein anderes Schema. IMAP- und SMTP-Server heißen beide mx????.netcup.net. Man könnte sich da jetzt eigene Subdomains anlegen, dann kann es aber Probleme mit dem Zertifikat geben.

    Oder man legt sich extra Subdomains an und lässt roundcube dann immer die entsprechende Config laden.

    Also z.B. webmail-gmx.example.com und webmail-web.example.com


    Und in der Config dann:

    PHP: config.inc.php
    $config['include_host_config']['webmail-gmx.example.com'] = 'gmx_config.inc.php';
    $config['include_host_config']['webmail-web.example.com'] = 'web_config.inc.php';

    In gmx_config.inc.php und web_config.inc.php setzt man dann entsprechend $config['default_host'] und $config['smtp_server'].


    Bei deiner Lösung sehe ich nämlich ein Problem: Was ist wenn sich mehrere gleichzeitig einloggen? Die überschreiben sich dann doch gegenseitig die server.conf. :/

    RS Brezn | VPS 500 G8 Plus | 2× VPS Karneval 2020 | VPS Pocket Admin | RS Cyber Quack | Webhosting EiWoMiSau


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Hallo Virinum,


    eine sehr einfache Lösung ist Deine aber nicht unbedingt ;)
    Zugegeben, bei mehreren realen Benutzern trotzdem vermutlich eine der einfachstmöglichen, abgesehen von zwei komplett eigenständigen Installationen, wenn man diese keinesfalls will.


    Was ich beschrieben habe, war mein eigener Webmailer, also einer, den niemand ausser mir nutzt. Der von Dir genannte Nachteil ist also in meiner Anwendung irrelevant, aber war mir natürlich von vornherein bewusst.


    Wenn mehrere Benutzer vorhanden wären, würde ich der Einfachheit halber getrennte Installationen wählen, um dem Benutzer damit auch gleich die Serverauswahl (3. Zeile des Login-Fensters) zu ersparen.


    Die Idee mit den Subdomains ist generell nicht dumm, darauf wäre ich im Traum nicht gekommen. Aber einfach im geplanten Sinn ist sie halt nicht vor dem Hintergrund meiner reduzierten Anforderungen. Und funktioniert ja auch nur bei Mailservern, auf die ich selbst Zugriff habe. Käme noch ein weiterer Freemaildienst dazu, wäre die Lösung vielleicht schon hinfällig.


    Ich verstehe einfach nicht, warum in Roundcube nicht auch ein SMTP-Server- Array vorgesehen wurde. Der intellektuelle Mehraufwand wäre ja wohl gleich Null gewesen...


    Grüsse

    Samci

    "... Das Fernsehen präsentiert als Ideal den totalen Durchschnittsmenschen. ...der Zuschauer sieht das Abbild seiner eigenen Beschränktheit glorifiziert und offiziell mit den Insignien einer nationalen Autorität ausgezeichnet. ..." (Umberto Eco) - gefunden bei Ranga Yogeshwar


    Und ganz aktuell: "Selbst Zwerge werfen lange Schatten, wenn die Sonne der Kultur tief steht" (Karl Krauss)

  • Es scheint als ob hier die Lösung zu finden wäre:

    https://gist.github.com/kimbtech/b6b08f1778420766ee1a2d24117d4871

    Und wenn man sich einen "Ordner" hocklickt:

    https://gist.github.com/kimbtech

    liest man, dass die Sache wohl ab RC 1.5 standardmässig integriert ist:

    "This plugin is not needed for versions >= 1.5 of roundcube, as the functionality was added by the developers!"


    Aber ich hatte vor Längerem mal sowas in der Art gelesen, dass man irgendwo in einem Unterverzeichnis Dateien mit dem SMTP-Servernamen anlegen kann, um dann bei Login nur noch einen Benutzernamen eingeben zu müssen. Nur finde ich die Info momentan nicht mehr.

    "... Das Fernsehen präsentiert als Ideal den totalen Durchschnittsmenschen. ...der Zuschauer sieht das Abbild seiner eigenen Beschränktheit glorifiziert und offiziell mit den Insignien einer nationalen Autorität ausgezeichnet. ..." (Umberto Eco) - gefunden bei Ranga Yogeshwar


    Und ganz aktuell: "Selbst Zwerge werfen lange Schatten, wenn die Sonne der Kultur tief steht" (Karl Krauss)

    2 Mal editiert, zuletzt von samci ()

  • Aber ich hatte vor Längerem mal sowas in der Art gelesen, dass man irgendwo in einem Unterverzeichnis Dateien mit dem SMTP-Servernamen anlegen kann, um dann bei Login nur noch einen Benutzernamen eingeben zu müssen. Nur finde ich die Info momentan nicht mehr.

    Bei einer eigenen Roundcube Installation kann man das in der Konfiguration verwenden:

    Quelle: config/defaults.inc.php


    (Aber bitte in der config.inc.php hinzufügen und nicht in der defaults.inc.php ändern!)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

  • Seit 1.5 ist Folgendes möglich:

    RS Brezn | VPS 500 G8 Plus | 2× VPS Karneval 2020 | VPS Pocket Admin | RS Cyber Quack | Webhosting EiWoMiSau


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

    Gefällt mir 3