Nachdem ich mich vor einiger Zeit entschieden hatte, nicht mehr den Mailserver eines Bekannten mitzuverwenden, sondern einen eigenen Mailserver aufzusetzen, griff ich zu Kolab. Kolab ist ähnlich wie iRedMail, eine Zusammenstellung aus unterschiedlichen Diensten, die bereits von Haus aus so eingerichtet sind, dass sie ohne großen Konfigurationsaufwand einfach funktionieren. Nur um das Feintuning muss man sich natürlich ein bisschen kümmern. Ansonsten sind Dinge wie IMAP/POP-Server, LDAP-Server, Amavis (Spam- und Virenfilter), Apache, Roundcube und MySQL bereits vorkonfiguriert.

Mittlerweile nutze ich den Mailserver gut aus und wollte mal wieder ein bisschen basteln. Also nahm ich mir vor, auf einem zweiten Server einen SMTP-Relay einzurichten, welches vom richtigen Mailserver die zu versendenden Mails annimmt und sie zum Empfänger weiter versendet. Außerdem kann ich das SMTP-Relay auch gleich noch für meine anderen Server verwenden, die zum Beispiel über PHP Mails verschicken (dieser hier zum Beispiel, wo die Seite drauf läuft).

Relayhost-Einstellung festlegen

Da Kolab auf bestehenden Techniken aufbaut, ist es sehr einfach ein SMTP-Relay anzugeben. Und zwar geschieht das bei Postfix in der Datei /etc/postfix/main.cf mit der Direktive “relayhost”:

relayhost = [10.1.0.86]

In dem Beispiel ist als Relayhost der SMTP-Server mit der IP 10.1.0.86 angegeben. Es gibt aber auch noch weitere Möglichkeiten. Möchte man zum Beispiel nicht den Standardport 25 verwenden, sondern 587, so kann die Angabe wie folgt aussehen:

relayhost = [10.1.0.86]:submission

Und es geht noch weiter. Sollte mal keine IP angegeben werden wollen, was sicher oft der Fall sein kann (ich habe die IP nur angegeben, weil es eine VPN-Interne IP ist), sondern eine Adresse die irgendwohin auflöst, so kann das auf zwei Unterschiedliche Arten geschehen:

relayhost = meinedomain.de

Dies sendet die Mail nach einem DNS-Lookup an den ersten MX-Server der der Domain meinedomain.de zugewiesen ist. Auf Port 25 versteht sich. Wenn wir “:submission” anhängen, geht es an Port 587.

relayhost = [meinedomain.de]

Dies sendet die Mail nach einem DNS-Lookup an den im A-Record angegebenen Server der Domain meinedomain.de. Wieder auf Port 25, “:submission” anhängen wenn es über 587 gehen soll.

IP(s) im SMTP-Relay freigeben

Nun muss nur noch am SMTP-Server mit dem verbunden werden soll, also bei mir 10.1.0.86, die IP der für den versand freizugebenden Servern in der Postfix Direktive “mynetworks” angegeben werden:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.1.0.0/24

Dies erlaubt bei mir also alle Hosts im 10.1.0.x Subnetz. Das kann ich mir dort erlauben, weil es sich wie gesagt um ein abgeschlossenes Netz handelt. Allen anderen empfehle ich, nur eine einzelne IP oder mehrere einzelne IPs anzugeben.

Wir nehmen also mal an, dass der Server mit der IP 123.123.123.123 am SMTP-Relay freigegeben werden soll, dann sollte eure “mynetworks”-Zeile so aussehen:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 123.123.123.123

Nicht wundern wegen den internen, den Loopback-Adressen. Die sollten stets freigegeben sein.

Wobei dort ganz stark variiert werden kann. Dazu habe ich mal aus dem Postfix Manual einen kleinen Auszug übernommen:

mynetworks = 127.0.0.0/8 168.100.189.0/28
mynetworks = !192.168.0.1, 192.168.0.0/28
mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64
mynetworks = $config_directory/mynetworks
mynetworks = hash:/etc/postfix/network_table

Es können also mit ! einzelne IPs exkludiert werden, es kann eine Postfix-Map verwendet werden und die Schreibweise von IPv6-Adressen ist auch erklärt. Unten in den Quellen habe ich das alles verlinkt, falls ihr hungrig auf noch mehr Informationen seid.

Backup-Relayhost angeben

Eventuell möchtet Ihr auch einen alternativen Relayhost angeben, falls der eigentliche nicht funktioniert. Das geht mit der Direktive

smtp_fallback_relay =

Die funktioniert genau wie “relayhost” und wird dann verwendet, wenn ein Versand über die als Relayhost angegebene IP fehlschlägt (zum Beispiel durch Downtimes oder das Abweisen der Mail(s) aus welchen Gründen auch immer).

Authentifizierung

Für den Fall, dass zum Versand eine Authentifizierung benötigt wird, empfehle ich das Howto von Christian Bartl: SMTP Relay Host mit Authentifizierung in Postfix konfigurieren.

Achtung! Es ist immer gut, wenn ihr wisst was ihr macht. Gerade wenn es um Mailrelays geht ist Vorsicht geboten!
In den Kommentaren oder per Mail fragen kostet nichts – zumindest wenn ihr es nicht übertreibt.

Quellen:

6 thoughts on “Kolab Mailversand auf externes Relay umstellen

  1. Kolab sieht nicht schlecht aus. Funktioniert damit Synchronisation von Kontakten und Kalender mit Android?

  2. Hei Chris,

    sollte eigentlich kein Problem sein. Dafuer ist Synchroton integriert, was ActiveSync bereitstellt. Und Android kann ja ActiveSync.

    Ich verwende Kolab nicht als Kalender und die Kontakte, die ich in Kolab habe, brauche ich auch nur in Kolab. Die werden in einem bestimmten Format auf dem IMAP-Server gespeichert.

    Fuer Android habe ich noch kolab-android gefunden. Aber da steht was von Kolab 2, also ist es mit hoher Wahrscheinlichtkeit nicht aktuell.

    https://code.google.com/p/kolab-android/

    Hier ist noch eine Liste mit allen Connectoren/Clients:

    http://kolab.org/clients

    Das Problem mit ActiveSync: Unter Debian funktioniert Synchroton nicht und mein dazu erstelltes Ticket aus April (Link weiter unten) wurde noch nicht geloest. Es scheint gar niemanden zu interessieren. Unter CentOS soll das laut einiger Nutzer funktionieren.

    https://issues.kolab.org/show_bug.cgi?id=2902

    Gruss

  3. Schade, dass ActiveSync bei den meisten OpenSource Projekten nicht (richtig) funktioniert oder auf wenige Benutzer beschränkt ist. So kommt man kaum an Exchange vorbei. Allerdings verwende ich privat noch immer einen handgeschriebenenen Kalender und werde vorerst auch dabei bleiben.

  4. Hallo Chris,
    im Gegensatz zu anderen Groupwares ist Kolab vollständig open source und überhaupt nicht beschränkt.
    Dass ActiveSync auf Debian nicht richtig funktioniert ist verständlich, denn die Kolab-Entwickler stellen nur Pakete für CentOS bereit. Denn CentOS ist die Referenzplattform.
    Debian-Pakete kommen aus der Community, man kann hier also mithelfen, wenn es Probleme gibt.

  5. hallo ,

    ich habe schon auch kolab installiert und glücklicherweise schickt er auch Mail draußen aber ich kann keine email bekommen weil die ausgehenden Email sind mit localhost Name die nicht existiert geschickt worden.

    die Konfiguration ist so:
    ich habe einen echten mailserver in meinem Domain ideeha.co
    mein private Mailserver ist test.up und in postfix main.cf relay wurde konfiguriert. so gehen email mit domain test.up raus und nicht als ideeha.co .. was soll ich machen dass kolab email bekommen kann?

    ich danke

Leave a Reply to chris Cancel reply

Your email address will not be published. Required fields are marked *