Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Wer einen eigenen Root- oder vServer besitzt kann diesen relativ einfach zu einem vollständigen Mailserver machen. So kann man seine E-Mail Konten selbst hosten und muss sich nicht fremden Anbietern anvertrauen. Ein E-Mail System benötigt nicht besonders viele Ressourcen und müsste theoretisch schon auf einem Raspberry Pi zufriedenstellend laufen.

In dieser Anleitung erkläre ich euch, wie ihr einen Mailserver mit Dovecot und Postfix + MySQL Datenbank unter Ubuntu Server aufsetzt und benutzt. Die Anleitung funktioniert ähnlich auch mit anderen Linux-Systemen.

Inzwischen habe ich eine neue, stark verbesserte Anleitung mit zusätzlichen Features für Ubuntu 16.04 veröffentlicht: https://legacy.thomas-leister.de/sicherer-mailserver-mit-dovecot-postfix-virtuellen-benutzern-und-ubuntu-server/

Nutzt bitte die neue Anleitung, wenn ihr Ubuntu 16.04 verwendet

 

 

Allgemeines: Die E-Mail Architektur

Für die Installation und Konfiguration eines Mailservers ist es hilfreich, zu wissen, wie ein E-Mail System grundlegend funktioniert. Ein E-Mail Serversystem besteht i.d.r. aus einzelnen (Software-) Servern die verschiedene Aufgaben haben. Eine Komponente ist nur für den Transport von E-Mails von Client weg zum Server und für den Transport zwischen den Servern zuständig. Diesen Job übernimmt in dieser Anleitung Postfix, ein sogenannter Mail Transfer Agent (MTA). Dieser kommuniziert über das SMTP-Protokoll mit dem E-Mail Client und anderen Mailservern.

Eine andere Komponente, der Mail Delivery Agent (MDA) – hier Dovecot – ist für die Einsortierung der ankommenden E-Mails in die richtigen Postfächer verantwortlich. Außerdem kommt mit Dovecot ein IMAP-Server mit, der es dem Client erlaubt, auf die Mailbox zuzugreifen. Das POP Protokoll ist nicht mehr zeitgemäß und lässt beispielsweise keine geräteübergreifende Synchronisation zu („Gelesen-Status“ etc), aus diesem Grund wird hier auf POP verzichtet und stattdessen IMAP genutzt.

Dovecot übernimmt also sowohl die Rolle eines MDAs, als auch die Rolle eines IMAP-Servers.

Mailserver Schema

MTA (Postfix):

  • Nimmt E-Mails vom Client entgegen und leitet sie an andere Mailserver weiter
  • Nimmt E-Mails von anderen Servern entgegen und leitet diese E-Mails an den MDA weiter
  • => Transportaufgaben

MDA (Dovecot):

  • „Einsortierung“ der ankommenden E-Mails in die korrekten Postfächer
  • => „Logistik“

IMAP Server (Dovecot):

  • Gibt auf Anfrage den Inhalt der Mailbox zurück
  • Abgleich der Mailbox über mehrere Geräte hinweg
  • => Speicher-/Mailboxverwaltung

Außerdem dient Dovecot in unserem Fall auch noch als Authenfizierungsserver. Postfix fragt z.B. bei Dovecot an, ob eine bestimmte Mail versendet werden darf. Dazu durchsucht Dovecot die Benutzerdatenbank und gibt dann ggf. ein „OK“ an Postfix.

MySQL Server vorbereiten

Die Benutzerkonten werden hier in einer MySQL Datenbank abgespeichert. Es lassen sich zwar auch andere Methoden nutzen, wie z.B. die Benutzung von echten Linux Benutzeraccounts, doch mit MySQL hat man einen entscheidenden Vorteil:

Es lässt sich hervorragend eine große Anzahl von virtuellen Accounts bereitstellen, die einfach zu managen ist. Man stelle sich ein E-Mail Sytem mit 400 Nutzern vor, dass auf PAM Benutzeraccounts basiert. Man müsste dann 400 echte Benutzeraccounts auf dem Server anlegen. Mit der MySQL Datenbank haben wir die Möglichkeit, alle Benutzer einfach in einer Tabelle aufzulisten – zusammen mit Passwort und Benutzereinstellungen. Dovecot und Postfix benutzen diese Tabellen, um Nutzer, Aliase und Domains zu finden.

Es werden drei verschiedene Tabellen angelegt: Eine Tabelle „users“, in denen alle Benutzernamen mit Passwort eingetragen sind, eine Tabelle „domains“, in der alle Domains enthalten sind, für die das Mailsystem E-Mails bearbeiten soll und eine Tabelle „aliases“, die Aliasbezeichnungen für E-Mail Konten enthält.

MySQL installieren

Zunächst muss ein MySQL Server installiert und eingerichtet werden:

sudo -s
apt-get update && apt-get upgrade
apt-get install mysql-server

Bei der Installation wird man nach einem Passwort für den Benutzer „root“ gefragt. Damit ist nicht der root-Systemnutzer gemeint, sondern der MySQL root, der alle Rechte auf dem Datenbankserver hat. Für diesen muss ein Passwort festgelegt werden.

Tabellen anlegen

Jetzt werden die drei Tabellen für das E-Mail System angelegt. Loggt euch dafür in MySQL ein…

mysql -u root -p

und gebt folgende SQL Befehle ein:

create database vmail;
use vmail;
# Tabelle für Benutzerkonten erstellen
create table users (id INT UNSIGNED AUTO_INCREMENT NOT NULL, username VARCHAR(128) NOT NULL, domain VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, UNIQUE (id), PRIMARY KEY (username, domain) );

# Tabelle für Domains
create table domains (id INT UNSIGNED AUTO_INCREMENT NOT NULL, domain VARCHAR(128) NOT NULL, UNIQUE (id), PRIMARY KEY (domain));

# Tabelle für Aliase
create table aliases (id INT UNSIGNED AUTO_INCREMENT NOT NULL, source VARCHAR(128) NOT NULL, destination VARCHAR(128) NOT NULL, UNIQUE (id), PRIMARY KEY (source, destination) );

Zum Schluss wird noch ein neuer Datenbankbenutzer „vmail“ erstellt (Passwort anpassen!), der vollen Zugriff auf diese Datenbank erhält. Unter ihm werden Dovecot und Postfix später auf die Datenbank zugreifen:

GRANT ALL ON vmail.* TO 'vmail'@'localhost' IDENTIFIED BY 'vmailpasswort';

Die benötigten Tabellen sind fertig und es kann mit „exit“ aus der MySQL Konsole gewechselt werden.

vMail Verzeichnis und Benutzer einrichten

Die E-Mail Postfächer sollen nicht – wie standardmäßig festgelegt – in /var/mail liegen, sondern in /var/vmail. Innerhalb dieses Verzeichnis wird eine Maildir Verzeichnisstruktur aufgebaut nach dem Muster /var/vmail/domain/benutzername/. Im Benutzerverzeichnis liegen schließlich die Ordner für Inbox, Entwürfe, gesendete Mails etc.

mkdir /var/vmail

Die Maildir Verzeichnisstruktur wird später automatisch von Dovecot angelegt. Jetzt muss noch ein neuer Benutzer eingeführt werden, der vollen Zugriff auf dieses Mailverzeichnis hat: Der Nutzer „vmail“. Unter diesen Benutzer werden die Mailserver im dem Verzeichnis arbeiten.

useradd vmail

Der vmail User wird Besitzer von /var/vmail:

chown -R vmail:vmail /var/vmail
chmod -R 770 /var/vmail/

Dovecot installieren und konfigurieren

Jetzt ist es soweit – Dovecot kann installiert werden:

apt-get install dovecot-common dovecot-imapd dovecot-mysql dovecot-lmtpd

(Ab Ubuntu 14.04 heißt das Paket „dovecot-common“ „dovecot-core“)

Die letzten Pakete stellen Funktionen wie IMAP Zugriff für den Client, MySQL Datenbankanbindung und LMTP Protokoll zur Verfügung. Letzteres wird zum Ablegen von E-Mails im Postfach genutzt, sobald der MTA eine Mail empfangen hat. Während der Installation kann gewählt werden, ob ein selbst ausgestelltes SSL Zertifikat generiert werden soll. Wenn ihr noch kein Zertifikat von einer CA habt, wählt hier „Ja“.

Los geht’s mit der Konfiguration! Einige Stellen in den vorhandenen Konfig-Dateien müssen angepasst werden.

cd /etc/dovecot/

Konfiguration der Postfächer

Im Verzeichnis conf.d findet ihr die Datei „10-mail.conf“. Setzt folgende Einstellungen (Kommentarzeichen # ggf. entfernen!):

mail_home = /var/vmail/%d/%n
mail_location = maildir:~/mail:LAYOUT=fs
mail_uid = vmail
mail_gid = vmail
mail_privileged_group = vmail

Dovecot wird damit mitgeteilt, nach welchem Muster die Postfächer angelegt werden sollen und unter welchem Benutzer darauf zugegriffen werden soll. In unserem Fall ist das der Nutzer „vmail“.

Authentifizierung über MySQL Datenbank

Im nächsten Schritt wird die Benutzerauthentifizierung über die MySQL-Datenbank eingestellt. Öffnet dazu die Datei „/etc/dovecot/dovecot-sql.conf.ext“

Setzt die Einstellungen in der Datei folgendermaßen (vmail Passwort anpassen!):

driver = mysql
connect = host=127.0.0.1 dbname=vmail user=vmail password=vmailpasswort
default_pass_scheme = SHA512-CRYPT

password_query = \
SELECT username, domain, password \
FROM users WHERE username = '%n' AND domain = '%d'

Der erste Teil der Konfiguration enthält die Zugangsdaten zur MySQL Datenban „vmail“, der zweite Teil besteht aus der SQL Abfrage, die der Mailserver ausführen muss, um Nutzerinfos zu erhalten.
Die Zeile

iterate_query = SELECT username, domain FROM users

am Ende der Datei wird ebenfalls „einkommentiert“ und entsprechend abgeändert. (Kommentarzeichen # entfernen).

Update: In einigen Fällen wird diese letzte Zeile nicht vom Mailserver benötigt, was in den Maillogs zu einer Warnung führt. In diesem Fall kann „iterate_query“ wieder auskommentiert werden.

Abspeichern, weiter geht’s!

Authentifizierungseinstellungen

Für eine sichere Anmeldung am Mailserver werden jetzt noch ein paar Einstellungen in conf.d/10-auth.conf gesetzt:

disable_plaintext_auth = yes
auth_mechanisms = plain login

Die erste Zeile legt fest, dass Klartextkennwörter nur an den Server übertragen werden können, wenn vorher eine verschlüsselte Verbindung hergestellt wurde. Die zweite Einstellung wurde um „login“ erweitert. Dies stellt die Kompatibilität zu Windows Mail und Outlook her. Wer diese Software nicht nutzt, kann es auch weglassen.

Vor die Einstellung

#!include auth-system.conf.ext

wird ein Kommentarsymbol „#“ gesetzt, um diese unwirksam zu machen. Sie bindet eine weitere Datei ein, die Einstellungen für die PAM Authentifizierung enthält. Weil wir aber eine MySQL Datenbank nutzen, wird PAM nicht gebraucht.

Die Datei „/etc/dovecot/dovecot.conf“ enthält bereits viel Text, den wir aber nicht benötigen. Für eine bessere Übersicht wird der Inhalt der Datei gelöscht:

> /etc/dovecot/dovecot.conf

… und folgender Inhalt eingefügt:

# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol

listen = *, ::

base_dir = /var/run/dovecot/

# Greeting message for clients.
login_greeting = Dovecot ready.

!include conf.d/*.conf
!include_try local.conf

# Passdb SQL
passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

Darin werden grundlegende Einstellungen von Dovecot festgelegt, z.B. die aktiven Protokolle, die zu benutzenden Netzwerkschnittstellen und die Begrüßungsnachricht für den Mailclient. Außerdem werden via include alle Konfigurationsdateien in conf.d eingebunden. Der passdb Abschnitt legt fest, dass die SQL Abfragen in dovecot-sql.conf.ext genutzt werden sollen, um einen Nutzer zu authentifizieren.

SASL Authentifizierung

Postfix fragt bei Dovecot nach, ob ein Benutzer berechtigt ist, eine E-Mail zu versenden, deshalb muss Dovecot einen Socket für solche SASL Anfragen bereitstellen. Dieser Auth-Socket wird nun unter conf.d/10-master.conf eingestellt. Die „service auth“-Sektion muss so aussehen:

service auth {
    unix_listener auth-userdb {
        mode = 0600
        user = vmail
        group = vmail
    }

    # Postfix smtp-auth
    unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
    }
}

LMTP Socket für Postfix

Zusätzlich zum SASL Socket soll Dovecot auch noch einen Socket für das LMTP-Protokoll für Postfix bereitstellen. Im Gegensatz zum ähnlichen SMTP Protokoll wird LMTP genutzt, um vom MTP empfangene Mails innerhalb eines Mailsystems an den MDA und damit die Postfächer weiterzugeben (Siehe Grafik oben).

In derselben Datei „10-master.conf“ wird die LMTP Service Konfiguration wie folgt geändert:

service lmtp {
    unix_listener /var/spool/postfix/private/dovecot-lmtp {
      mode = 0660
      group = postfix
      user = postfix
    }
    user = vmail
}

Da für das LMTP Protokoll auch Einstellungen für den LDA (Local Delivery Agent) genutzt werden, die sich in /etc/dovecot/conf.d/15-lda.conf befinden, wird auch diese Datei für eine kleine Änderung geöffnet. Hier muss unbedingt

postmaster_address =

„einkommentiert“ und auf eine gültige E-Mail Adresse gesetzt werden. An diese Adresse gehen Benachrichtigungen, wenn der E-Mail Transport fehl schlägt.

Sichere SSL Verbindungen aktivieren

E-Mails sollten nur noch verschlüsselt abgerufen werden – alles andere wäre grob fahrlässig. Deshalb werden nun noch ein paar Einstellungen zu SSL/TLS vorgenommen. Öffnet dazu die Datei conf.d/10-ssl.conf.

ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

Die oberste Zeile legt fest, dass E-Mails ausschließlich über eine sichere Verbindung abgerufen werden können. Verbindungsversuche ohne Verschlüsselung werden nicht ermöglicht. „ssl_cert“ und „ssl_key“ geben den Pfad zu den SSL Zertifikatsdateien an. Die hier angegebenen Zertifikate funktionieren zwar, erzeugen aber auf den Clients eine Warnmeldung, weil es sich um selbst ausgestellte Zertifikate handelt und nicht um „offizielle“,  Zertifikate einer anerkannten CA.

Wenn das private Zertifikat mit einem Passwort gesichert ist, kann dieses unter „ssl_key_password“ angegeben werden. Für besonders sichere SSL-Verbindungen wird für „ssl_cipher_list“ der Chipher-String von bettercrypto.org angegeben und SSLv3 deaktiviert:

ssl_cipher_list = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
ssl_protocols = !SSLv2 !SSLv3

Clients werden angewiesen, diese Cipher-Reihenfolge zu berücksichtigen:

ssl_prefer_server_ciphers = yes

Postfix installieren und konfigurieren

Dovecot ist fertig installiert – jetzt ist Postfix, der Mail Transfer Agent, an der Reihe. Installiert die folgenden Postfix-Pakete:

apt-get install postfix postfix-mysql

Nach der Installation sollte ein kleines Setup starten. Falls nicht, kann es mit dem Befehl

sudo dpkg-reconfigure postfix

(neu) gestartet werden.

Ansonsten folgt ihr einfach dem Setup-Programm und stellt folgendes ein:

  • „Internet Site“
  • System-E-Mail-Name wählen: Domainname (oder Hostname im LAN z.B. ubuntu-server.local)
  • (Sollten weitere Fragen gestellt werden … einfach nach besten Wissen ausfüllen ;) )

Eine Testmail versenden

Die grundsätzliche Funktion von Postfix kann kurz mit einer Testmail überprüft werden. Installiert dazu das Paket „bsd-mailx“ und führt diesen Befehl aus:

echo "Hallo Welt Text" | mailx -s "Hallo Welt" root@ubuntu-server

(Hostnamen ersetzen!) Um zu prüfen, ob die E-Mail angekommen ist, öffnet ihr einfach das Postfach des Benutzers root. Darin sollte sich der E-Mail Quellcode befinden:

nano /var/mail/root

/etc/postfix/main.cf anpassen

In die Datei /etc/postfix/main.cf werden grundlegende Einstellungen zum MTA geschrieben. Auch diese Datei wird zuerst einmal komplett geleert und dann mit neuem Inhalt gefüllt:

> /etc/postfix/main.cf

Neuer Inhalt:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no

readme_directory = no

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mydestination =
mailbox_size_limit = 51200000
message_size_limit = 51200000
recipient_delimiter =
inet_interfaces = all
myorigin = ubuntu-server
inet_protocols = all

Für „myorigin“ wird der Hostname des Servers oder die Domain eingetragen. mailbox_size_limit legt die maximale Mailboxgröße in Bytes fest, message_size_limit die maximale Größe einer E-Mail. Trifft eine E-Mail ein, die größer ist, wird die Übertragung abgebrochen.

SSL / TLS Unterstützung aktivieren

Damit E-Mails nicht nur verschlüsselt via Dovecot empfangen, sondern auch verschlüsselt gesendet werden können, muss auch Postfix SSL/TLS unterstützen. Fügt dazu folgende Konfiguration in die Datei main.cf ein:

##### TLS parameters ######
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

Wer gültige SSL Zertifikate von einer anerkannten CA besitzt, sollte diese nutzen und die Pfade entsprechend anpassen. Außerdem kann mit gültigen Zertifikaten eine erweiterte SSL-Konfiguration durchgeführt werden, die verschlüsselte Server-Server-Verbindungen zulässt. So funktioniert auch „E-Mail made in Germany“ von GMX, Web.de und der Telekom. => Erweiterte Postfix SSL Konfiguration

SASL Auth und Submission aktivieren

Im nächsten Schritt wird Postfix so eingestellt, dass dieser den zuvor eingerichteten Auth Socket von Dovecot nutzt, um Benutzerberechtigungen zu ermitteln (in die Datei main.cf einfügen):

###### SASL Auth ######
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

In der Datei „/etc/postfix/master.cf“ wird Submission Support + SASL aktiviert. Der komplette „submission“-Block inkl -o Parameter wird gelöscht (Zeile löschen in nano mit STRG+K) und durch folgenden Block ersetzt:

submission inet n       -       -       -       -       smtpd -v
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

 

LMTP aktivieren

Postfix soll zum Zustellen von empfangenen E-Mails den LMTP Socket von Dovecot nutzen. Bearbeitet dazu wieder die Datei main.cf

###### Use Dovecot LMTP Service to deliver Mails to Dovecot ######
virtual_transport = lmtp:unix:private/dovecot-lmtp

Relay Einstellungen

Postfix muss mitgeteilt werden, in welchen Fällen E-Mails wohin geleitet werden dürfen. Ist diese Einstellung fehlerhaft, ist es beispielsweise möglich, über einen fremden Mailserver E-Mail zu versenden. Das kann einem Serverbetreiber großen Ärger einbringen, vor allem wenn über den eigenen Server Spam- oder Phishingmails verschickt werden.

Aus diesem Grund wird der E-Mail Versand nur erlaubt, wenn der Absender der Server selbst ist oder der Nutzer über die Datenbank identifiziert werden konnte. Fügt folgende Zeilen noch in die Datei main.cf ein:

##### Only allow mail transport if client is authenticated or in own network (PHP Scripts, ...) ######
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Bei Postfix Versionen ab 2.10 heißt die Einstellung „smtpd_relay_restrictions“. (Ubuntu 14.04 kommt mit Version >= 2.11)
Wer will, kann über diese Einstellung übrigens auch die Annahme von E-Mails verweigern, die von bekannten SPAM-Servern kommen: Postfix: Annahme von SPAM E-Mails blockieren mit Spamhaus

MySQL Anbindung

Auch Postfix bekommt eine Anbindung an die MySQL Datenbank (in main.cf):

###### MySQL Connection ######

virtual_alias_maps = mysql:/etc/postfix/virtual/mysql-aliases.cf
virtual_mailbox_maps = mysql:/etc/postfix/virtual/mysql-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/virtual/mysql-domains.cf
local_recipient_maps = $virtual_mailbox_maps

Normalerweise werden z.B. die Domainnamen, für die E-Mails empfangen werden sollen, direkt in der Datei angegeben. Stattdessen nutzen wir die MySQL Datenbank, die schnelle Anpassungen erlaubt. Um die Mailunterstützung für eine neue Domain zu aktivieren, muss lediglich ein neuer Datensatz in die „domains“-Tabelle eingetragen werden. Die eben festgelegten Einstellungen verweisen auf drei SQL-Dateien, die jetzt erstellt werden:

Wechselt in den Ordner /etc/postfix/ und erstellt einen neuen Ordner „virtual“

sudo mkdir /etc/postfix/virtual
sudo chmod 660 /etc/postfix/virtual/
cd /etc/postfix/virtual

Darin erstellt ihr eine neue Datei „mysql-aliases.cf“ und schreibt folgendes hinein (vmail Passwort anpassen!):

user = vmail
password = vmailpasswort
hosts = 127.0.0.1
dbname = vmail
query = SELECT destination FROM aliases WHERE source='%s'

Dasselbe macht ihr auch für die Dateien „mysql-maps.cf“ und „mysql-domains.cf„. (Auch hier die Passwörter für den vmail MySQL Benutzer korrekt setzen!)

Inhalt der mysql-maps.cf:

user = vmail
password = vmailpasswort
hosts = 127.0.0.1
dbname = vmail
query = SELECT * FROM users WHERE username='%u' AND domain='%d'

Inhalt der mysql-domains.cf:

user = vmail
password = vmailpasswort
hosts = 127.0.0.1
dbname = vmail
query = SELECT * FROM domains WHERE domain='%s'

Das war’s auch schon! Bevor die Server neu gestartet und die Einstellungen übernommen werden, müssen aber zunächst gültige Datensätze in die MySQL Datebank eingetragen werden.

MySQL Datenbank mit Inhalten füllen

Loggt euch in die Datenbank ein:

mysql -u root -p
use vmail;

Domain hinzufügen

Damit das Mailsystem funktioniert, muss ihm mitgeteilt werden, für welche Domains E-Mails verarbeitet / empfangen werden dürfen. Die Domains werden in der Tabelle „domains“ verwaltet. Eine neue Domain wird über folgendes SQL Kommando hinzugefügt:

insert into domains (domain) values ('domain.tld');

Neuen Benutzeraccount / Mailadresse hinzufügen

Bevor ein neuer Datensatz für eine Mailadresse eingetragen werden kann, muss zunächst der Hash des gewünschten Benutzerpassworts errechnet werden. In der Dovecot Konfiguration wurde dafür ein sehr starker SHA-512 Hash gewählt. Verlasst ggf. die MySQL Konsole mit „exit“ und gebt folgenden Befehl in die Kommandozeile ein:

doveadm pw -s SHA512-CRYPT

Ihr werdet aufgefordert das gewünschte Passwort zwei mal einzugeben. Danach erhaltet ihr den Hash. Das „{SHA512-CRYPT}“ vor dem eigentlichen Hash kann entfernt werden – es dient nur der Identifizierung des gewählten Hash-Schemas. Da von uns aber nur CHA512-CRYPT genutzt wird, ist es nutzlos. Den Rest der langen Zeichenkette kopiert ihr euch am besten in die Zwischenablage und fügt ihn in das SQL Kommando ein, das einen neuen Benutzer in die Datenbank einfügt: (wieder in MySQL Konsole wechseln – wie oben)

insert into users (username, domain, password) values ('benutzer', 'domain.tld', '$6$A3ZAyqvdkl4nc8BM$bz8YAW7/0B1DcE2I37epHO/p33MbdVKb0FbGH56Ey1KVO1.m3NPL/s5v35NwFrSZMPTBkrc6DDX6rx2MCQhUa0');

Neuen Alias hinzufügen

Eine Alias-Adresse, die z.B. Mails von „alias1@ubuntu-server.de“ auf „benutzer@ubuntu-server.de“ umleitet, wird wie folgt in die Datenbank eingetragen:

insert into aliases (source, destination) values ('alias1@ubuntu-server.de', 'benutzer@ubuntu-server.de');

Verlasst die MySQL Kommendozeile wieder mit „exit“.

Übrigens: Ihr könnt auch sog. Catch-All Aliase einrichten. Wenn z.B. alle eingehenden E-Mails auf domain.tld auf ein bestimmtes Benutzerkonto umgeleitet werden sollen, erstellt einen Alias mit source: „@domain.tld“ und destination: „postfach@anderedomain.tld“.

Sollen hingegen nur E-Mails eingesammelt werden, die an Adressen gehen, die nicht existieren, muss der Catch-All beschränkt werden. Alles weitere dazu findet ihr in diesem Beitrag.

Mailserver neu starten

Damit die Konfigurationen übernommen werden, werden Dovecot und Postfix neu gestartet:

service dovecot restart
service postfix reload
service postfix restart

DNS Einstellungen

Wenn ihr euren Mailserver nicht nur im lokalen Heimnetzwerk nutzen wollt, sondern im direkt im Internet und er dementsprechend über eine Domain erreichbar ist, muss sichergestellt werden, dass die Einstellungen im DNS Zonefile korrekt sind. Für Mailserver werden unbedingt sog. MX-Records benötigt. Diese legt ihr jeweils für IPv4 und IPv6 an.

Außerdem verlangen manche Mailprovider wie z.B. Freenet sog. Pointer Resource Records. Sie verhalten sich gegenteilig zu den normalen DNS Records und ordnen einer IP Adresse einen Domainnamen zu. Wenn kein PTR angelegt wird, schlägt der Mailversand an Freenet z.B. fehl. Denkt daran, nicht nur für eure IPv4 Adresse einen PTR Eintrag zu erstellen, sondern auch für IPv6 ;)

Wer den Mailprogrammen die Suche nach der richtigen Domain erleichtern will, kann im DNS Zonefile die Subdomains imap.domain.de und smtp.domain.de anlegen und auf die Domain verweisen, unter der der Mailserver erreichbar ist. Die meisten Mailprogramme suchen beim Einrichten eines neuen Kontos nämlich nach diesen Serveradressen.

Portfreigaben?

Wer seinen Mailserver Zuhause stehen hat, muss darauf achten, die jeweiligen Ports (143 und 587) in der Firewall des Routers freizuschalten. Die meisten modernen Router können UPnP, was dazu führen kann, dass Mails zwar verschickt werden können, jedoch nie ankommen, weil sie von außen an Port 143 (IMAP) scheitern und nicht wieder zum Mailserver zurück finden. Für den Mailzugriff von außerhalb muss Port 587 (SMTP) ebenfalls freigegeben werden.

E-Mail Account im Mailclient einrichten

Der IMAP Server auf Port 143 ansprechbar; der SMTP Server unter Port 587. Beide Server werden via STARTSSL angesprochen. Die Authentifizierung findet über ein „Plain Password“ / „Normal Password“ statt.

Wenn die selbstsignierten SSL-Zertifikate genutzt werden (standard), kann es sein, dass der E-Mail Client (wie z.B. Mozilla Thunderbird) eine SSL Warnung ausgibt und die Zertifikate zuerst akzeptiert werden müssen. Das passiert beim ersten Aufruf der Mailboxen und beim ersten Versenden einer E-Mail. Wer auf so eine Warnung verhindern will, muss sich ein anerkanntes SSL-Zertifikat von einer der bekannten CAs kaufen, das auf den Domainnamen des Servers passt.

Logging reduzieren

Standardmäßig loggt Postfix (bzw sein Submission Prozess) jeglichen Datenverkehr mit den Clients mit. Damit wird eine Fehlersuche erheblich erleichtert. Sobald alles funktioniert, kann man auf die detaillierten Logfiles aber verzichten und spart sich über die Zeit eine Menge Speicherplatz. Das detaillierte Logging im „Verbose“ Modus kann man abschalten, indem man in der /etc/postfix/master.cf in der „submission“-Zeile das „-v“ hinter „smtpd“ entfernt und Postfix neu startet.

Tipps für Server in freier Wildbahn

Für E-Mail Server, die im großen, freien Internet und nicht im kleinen Heimnetzwerk betrieben werden,  gelten spezielle Regeln. Es gibt einige Dinge zu beachten, damit der eigene Mailserver nicht auf der Blacklist eines bekannten E-Mail Providers wie z.B. web.de oder der Telekom landet.

Eine feste Domain, unter der der Sever erreichbar ist, ist quasi ein „muss“. Ebenso eine fixe IP Adresse. Viele Provider kontrollieren Domain und IP vor der Entgegennahme einer E-Mail, um gegen Spamserver vorzugehen.

Und natürlich gilt: Verschickt nicht unnötig automatisiert E-Mails, dann landet ihr nämlich relativ schnell auf einer Blacklist ;)

Hat dir diese Anleitung geholfen?

Wenn ich dir mit dieser Anleitung helfen konnte, deinen Mailserver aufzusetzen, ist dir das vielleicht ein paar Euros wert. Wie du dir sicherlich vorstellen kannst, war es eine Menge Arbeit, diese Anleitung zu erproben und zu formulieren. Da freue ich mich natürlich riesig über ein wenig finanzielle Unterstützung, sodass ich beispielsweise Test-Server für diese und andere Anleitungen mieten kann. Wie du mir etwas zukommen lassen kannst, erfährst du hier: Unterstützen

Fehlerbehebung

Möglicherweise führt diese Anleitung nicht sofort zum Erfolg, obwohl sie mehrmals auf jungfräulichen Systemen getestet und für funktionierend befunden wurde. Bevor ihr bei Problemen eine Mail an mich schreibt, oder das Problem in den Kommentaren schildert, solltet ihr euch folgende Fragen stellen:

  • Sind bei einem lokalen Server tatsächlich die Ports für E-Mail am Router freigegeben? (Siehe oben)
  • Wurde ein entsprechendes Mailkonto in der Datenbank angelegt? (Username und Passwort nochmal prüfen! Passwort ggf. nochmal hashen!)
  • Welche Fehler und Warnungen werden in den Log-Dateien /var/log/mail.log und /var/log/mail.err ausgegeben?
  • Konnte eine Verbindung mit der MySQL Datenbank hergestellt werden? Stimmen die Zugangsdaten? (Siehe auch Log)
  • Wurde zuvor bereits ein Versuch unternommen, einen Mailserver aufzusetzen? Sind noch alte Konfigurationen aktiv?
  • Wurde die Konfiguration korrekt aus der Anleitung übernommen? (Tippfehler, Fehler beim Abtippen, vergessen, Anpassungen an eigenes System zu machen z.B. bei Passwörtern)
  • Ist das Server Betriebssystem aktuell?
  • Sind Firewalls oder andere Schutzmechanismen auf dem Server aktiv, die einen Mailversand verhindern könnten?
  • Sind die Einträge im DNS Zonefile (MX Record, PTR Record) gültig? Sind die Änderungen schon im DNS verfügbar? (Dauert bis zu 24 Stunden!)
  • Wurde eine E-Mail über eine IPv6-Adresse verschickt, die keinen PTR Record hat? (Siehe hier!)
  • Können E-Mails an den eigenen Server geschickt werden? Können Mails nach draußen geschickt werden? Können Mails von außen empfangen werden?

Verwaltung des Mailsystems durch die Weboberfläche WebMUM

Für die einfache Verwaltung von Usern, Domains und Weiterleitungen habe ich die Weboberfläche „WebMUM“ entwickelt. Sie basiert Server-seitig auf PHP und setzt nur einen Webserver mit PHP und MySQL-Anbindung voraus. Den Code und eine Installationsanleitung findet ihr auf GitHub.

Weitere Beiträge zu Mailserver Erweiterungen

… noch eine Anmerkung zum Support

Bitte habt Verständnis dafür, dass ich Fragen zu diesem Artikel nur noch in Ausnahmefällen beantworte. Es ist schon einige Zeit her, dass ich mich intensiv mit dem Thema Mailserver auseinandergesetzt habe. Anlass zum Schreiben dieses Beitrags war das Neuaufsetzen meiner eigenen und einiger fremder Mailserver. Mittlerweile habe ich mit Mailserver nur noch selten zu tun und „bin nicht mehr im Thema“. Ich war selbst auch nie ein großer Mailserver-Experte, sondern habe mir die Informationen aus nur aus den Dokumentationen der Software gezogen. Mein aus dem Steigreif abrufbares Wissen über Mailserver ist daher beschränkt.

Zudem will ich bei den vielen Fragen auch nicht mehr die Energie aufbringen, mich jedes Mal mit den Konfigurationen auseinanderzusetzen.

Ich bitte euch daher, euch bei Problemen nicht an mich zu wenden, sondern die Kommentare im Browser ggf nach Stichworten zu durchsuchen oder eine Suchmaschine eurer Wahl zu benutzen. Viele Fehlermeldungen und andere Probleme können schon durch kurzes Suchen beseitigt werden.


Post published on 23. März 2014 | Last updated on 27. Dezember 2016
Tags:             

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

473 thoughts on “Mailserver mit Dovecot, Postfix und MySQL auf Ubuntu 14.04 Server einrichten

  • Schöne ausführliche Beschreibung. Ich bin auch am Überlegen, ob ich meine Mails zentralisiere.
    Aber eine Frage habe ich noch, du schreibst POP3 ist veraltet, aber was kann ich nutzen, wenn ich miene Mails nicht auf dem Server meines Anbieters lagern will?
    Ich muss diese doch mit POP3 einsammeln, damit ich diese lokal habe, oder geht das mit IMAP auch?

    • Mit IMAP hast du die Mails auch lokal, aber soweit ich verstanden habe willst du, dass sie nach dem Abholen automatisch vom Server gelöscht werden? Ich denke nicht, dass das IMAP von sich aus kann, aber evtl. kann man den Mailclient ja so einstellen, dass er das übernimmt.

      LG Thomas

      • Ja genau, die Mails sollen auf dem Server gelöscht werden, da ich weder möchte, dass web.de oder gmx.de oder gar gmail (nutze ich aber persönlich nicht) und Konsorten meine Mails auf ihren Servern lagern und darüber hinaus bei vielen auch gar nicht genug Platz hätte alle meine Mails dort zu lagern.

        Dann ist aber POP doch nicht veraltet, wenn es das einzige Protokoll ist, dass sowas kann?
        Wobei – wenn man genau liest beziehst du dich spezifisch auf die Situation eines lokalen Mailservers, da macht IMAP sicher mehr Sinn, vor allem da heutzutage viele auch mehrere Geräte nutzen.

        • Ja gut, wenn man das so sieht… ;) Ist ein bisschen Ansichtssache. Ich finde halt ein Protokoll, das keinen geräteübergreifenden Sync beherrscht, nicht mehr zeitgemäß.

        • Hallo Struppi,

          also ich nutze schon lange IMAP und lade die E-Mails trotzdem täglich bei meinem Anbieter runter. Zur Verwaltung meiner E-Mails nutze ich Thunderbird. Man muss nun unterscheiden:
          1. Du hast in Deinem E-Mail-Programm die Ordner des Postfaches so, wie sie auf dem Server existieren.
          2. Mein Trick ist jetzt nun, dass ich im Thunderbird über die „Lokalen Ordner“ Unterordner zu verschiedensten Kategorien angelegt habe. In diese Ordner verschiebe ich täglich (oder alternativ der Filter) meine E-Mails von den IMAP-Ordnern – damit sind sie nicht mehr auf dem Server und nur noch lokal. Das tolle an IMAP ist nun, dass dieser Vorgang auch reversibel ist. Gesendete E-Mails werden bei mir übrigens ausschließlich lokal abgelegt. Aber das kann man auch anders gestalten und theoretisch kann man bestimmte E-Mails für Unterwegs trotzdem dauerhaft im Posteingang halten.

          POP3 ist damit meiner Meinung nach wirklich überflüssig.

  • Bei meinem Mailserver hole ich die Mails per Fetchmail von den verschiedenen Mail Anbietern ab, um sie durch Dovecot per IMAP meinen Clients wieder zentral zur Verfügung stellen zu können.

    Um Mails beim Abholen(IMAP & POP3) aus dem Postfach zu entfernen, hilft die Option „nokeep“ in der Config von Fetchmail.
    Das Einrichten ist recht einfach, hier eine typische Config:

    poll imap.gmail.com
    proto IMAP
    user "xxxxxx@gmail.com"
    password "geheim"
    nokeep
    ssl

  • Toller Beitrag,

    so eine Anleitung habe ich schon oft gesucht, aber nie gefunden. Hab leider nicht die Zeit gehabt, mich intensiv in postfix und dovecot einzulesen. ABer hiermit klappts.
    Vielen Dank!

  • Super Beitrag! Vielen Dank!
    Ich kann jetzt problemlos Emails versenden, aber beim Empfang stimmt anscheinend etwas nicht.
    Die Emails kommen leider nicht an.. bin 1:1 nach dieser Anleitung vorgegangen!
    Woran kann das liegen?

    • Hi! Danke!

      Mit dem Empfangen von E-Mails hatten leider schon mehrere User Probleme. Bisher hat sich aber immer herausgestellt, dass irgendwo ein Tippfehler war (SQL evtl). ;)
      Möglicherweise fehlt deinem DNS Record aber auch ein MX-Eintrag?

      Ansonsten lohnt sich oft ein Blick ins ErrorLog: /var/log/mail.log bzw mail.err
      Vielleicht kommst du dem Fehler so auf die Spur.

      LG Thomas

      • Bei mir funktionieren die SQL-Anweisungen in 2 von 3 Postfix-Dateien nicht (Ubuntu 14.04), wenn ich

        SELECT 1 FROM domains WHERE domain=’meinedomain.de‘

        in mysql direkt absetze gibt ne Fehlermeldung: „This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.“ Hiermit dagegen funktioniert es:

        SELECT * FROM domains WHERE domain=’meinedomain.de‘

        Analog bei der alias-Abfrage. Vielleicht hilft es ja jemanden :)

  • Hi,

    funktioniert soweit echt gut; eine Sache ist mir aber noch aufgefallen: Wenn die dovecot-sql.conf.ext wie oben beschrieben aussieht, bekomme ich immer folgende Warnung in der /var/log/mail.log:

    dovecot: auth: Warning: sql: Ignoring changed iterate_query in /etc/dovecot/dovecot-sql.conf.ext, because userdb sql not used. (If this is intentional, set userdb_warning_disable=yes)

    Ganz offenbar wird die iterate_query gar nicht benutzt.

  • Eine gut gelungene Anleitung für einen Mailserver unter Ubuntu.
    Hat jemand eine Idee zum Verschlüsseln von eingehenden E-Mails im vmail-Ordner?

    Vielen Dank Lutz

  • Hi, erstmal vielen Dank für das Tutorial, bisher das einfachste was ich gefunden habe (Man muss das ganze ja nicht unnötig mit vboxadm aufblähen).

    Allerdings kann sich Postfix nicht im MySQL anmelden:

    Apr 18 17:04:43 hanndev postfix/cleanup[1439]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
    Apr 18 17:04:43 hanndev postfix/cleanup[1439]: warning: mysql:/etc/postfix/virtual/mysql-aliases.cf lookup error for "root@hanndev.de"
    Apr 18 17:04:43 hanndev postfix/cleanup[1439]: warning: C0C9F560F50: virtual_alias_maps map lookup problem for root@hanndev.de -- deferring delivery
    Apr 18 17:04:44 hanndev postfix/error[1463]: 55242560F42: to=, relay=none, delay=2226, delays=2225/0.37/0/0.04, dsn=4.3.0, status=deferred (address resolver failure)

    Daher scheitern auch lokale Zustellversuche per mail. Wo liegt das Problem? In den MySQL-Error-Logs taucht kein Zugriff auf. Die Dateien sind 1:1 von dir so übernommen.

    Noch zwei andere Sachen: Wie kann man sieve implementieren (idealierweise inkl. Roundcube-Plugin) und wie kann ich Catchall-Adressen einrichten (Alles was an *@domain.tld geht soll der Benutzer root@domain.tld bekommen können)

    Vielen Dank, Florian

    • Zu Sieve wollte ich demnächst noch was schreiben, kann aber noch etwas dauern. Catchall funktioniert möglicherweise indem du einen neuen Alias von *@domain.tld auf root@domain.tld einträgst. Ausprobiert habe ich das aber nicht. Kann mir aber vorstellen dass das funktioniert. ;)

      Zum MySQl Problem an sich hab ich dir eine Nachricht an deine Mailadresse geschrieben.

      LG Thomas

      • Das wäre phantastisch.
        Habe zwar bereits versucht, Sieve einzubinden, hat nur leider nicht funktioniert. Freue mich drauf.

        LG
        Sebastian

      • Moin Thomas,

        ist ja schön das du meinem Vorredner helfen konntest u ihm eine PN dazu geschickt hast. Ich habe aber aktuell das gleiche Problem und würde gern wissen wie du ihm geholfen hast?

        Konkret liest man in den Logs: Jul 20 14:28:49 domain postfix/cleanup[9004]: warning: 69D905F6CF: virtual_alias_maps map lookup problem for root@domain.com — deferring delivery
        Gleichzeitig meldet Roundcube: SMTP Fehler 250: Authentisierung fehlgeschlagen.

        Die Zugangsdaten stimmen definitiv. Mist. Woran mag das liegen?

        Grüße

      • Habe ebenfalls dasselbe Problem mit der Fehlermeldung „virtual_alias_maps map lookup problem for root@domain.com — deferring delivery“ und „table lookup problem“ sowie „Access denied for user ‚vmail’@’127.0.0.1‘ (using password: YES) in der Datei /var/log/maillog, und zwar unter Centos 7. Außerdem noch „warning: mysql:/etc/postfix/sql/mysql-aliases.cf lookup error for „root@localhost““ und „warning: E30BB100033AB: virtual_alias_maps map lookup problem for root@localhost — deferring delivery“, „warning: mysql:/etc/postfix/sql/mysql-aliases.cf: table lookup problem“, und das die ganze Zeit.

        Habe ansonsten alles genauso gemacht wie oben im Tutorial angegeben. Könntest du mir einen Lösungshinweis geben?

        • Hi Michael,

          dein Problem liegt ganz klar bei der Datenbankverbindung. Läuft der Datenbankserver? Und vor allem: Existiert der angegebene Benutzer + Passwort? (Bei dir: DB Nutzer vmail). Hat der SQL Nutzer vmail die erforderlichen Rechte, um die entsprechende Datenbank zu öffnen?

          Aus der Fehlermeldung „Access denied for user ‘vmail’@’127.0.0.1′“ folgen alle anderen Fehlermeldungen.

          LG Thomas

          • Danke für die schnelle Antwort, Thomas. Der MySQL-Nutzer vmail hat Zugang zu der Datenbank, da passt alles. Und ich habe alles ganz genau nach diesem Tutorial gemacht.

            Ich kriege es jetzt seit fast 2 Wochen nicht hin mit dem Mailserver, und es ist jedes Mal ein frisch installiertes Ubuntu 14.04.1 oder ein Centos 7 auf einem dedizierten Server (ein DELL PowerEdge R720, 64 GB RAM).

            Für Ubuntu 12.04 hatte ich über ein Jahr eine funktionierende Konfiguration nach dieser Anleitung: https://krisweston.com/index.php/postfix-dovecot-and-mysql-on-ubuntu-12-04-lts/, aber ich wollte ein neues System, und damit passt es nicht. Deine Anleitung geht leider auch nicht bei mir.

          • Hier einmal ein paar aktuelle Fehlermeldungen. Habe meinen Server gerade testen lassen über mxtoolbox.com und bin genau nach deiner Anleitung vorgegangen. OS: Ubuntu 14.04.1 LTS x64 auf Serverhardware.

            srv01# tail -f /var/log/mail.log
            Aug 2 19:40:10 srv01 postfix/anvil[6811]: statistics: max connection count 1 for (smtp:65.36.241.227) at Aug 2 19:36:27
            Aug 2 19:40:10 srv01 postfix/anvil[6811]: statistics: max cache size 2 at Aug 2 19:37:28
            Aug 2 19:40:31 srv01 dovecot: master: Dovecot v2.2.9 starting up (core dumps disabled)
            Aug 2 19:40:36 srv01 dovecot: master: Fatal: Dovecot is already running with PID 7004 (read from /var/run/dovecot/master.pid)
            Aug 2 19:40:49 srv01 dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
            Aug 2 19:40:49 srv01 dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
            Aug 2 19:41:09 srv01 dovecot: master: Dovecot v2.2.9 starting up (core dumps disabled)
            Aug 2 19:41:26 srv01 postfix/master[6437]: reload — version 2.11.0, configuration /etc/postfix
            Aug 2 19:41:32 srv01 postfix/master[6437]: terminating on signal 15
            Aug 2 19:41:32 srv01 postfix/master[7222]: daemon started — version 2.11.0, configuration /etc/postfix
            Aug 2 19:42:52 srv01 postfix/smtpd[7228]: connect from mxtb-pws3.mxtoolbox.com[64.20.227.133]
            Aug 2 19:42:52 srv01 dovecot: auth: Warning: sql: Ignoring changed iterate_query in /etc/dovecot/dovecot-sql.conf.ext, because userdb sql not used. (If this is intentional, set userdb_warning_disable=yes)
            Aug 2 19:42:53 srv01 postfix/trivial-rewrite[7233]: warning: connect to mysql server 127.0.0.1: Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0
            Aug 2 19:42:53 srv01 postfix/trivial-rewrite[7233]: warning: mysql:/etc/postfix/virtual/mysql-aliases.cf: table lookup problem
            Aug 2 19:42:53 srv01 postfix/trivial-rewrite[7233]: warning: virtual_alias_domains lookup failure
            Aug 2 19:42:54 srv01 postfix/trivial-rewrite[7233]: warning: mysql:/etc/postfix/virtual/mysql-aliases.cf: table lookup problem
            Aug 2 19:42:54 srv01 postfix/trivial-rewrite[7233]: warning: virtual_alias_domains lookup failure
            Aug 2 19:42:54 srv01 postfix/smtpd[7228]: NOQUEUE: reject: RCPT from mxtb-pws3.mxtoolbox.com[64.20.227.133]: 451 4.3.0 : Temporary lookup failure; from= to= proto=ESMTP helo=
            Aug 2 19:42:55 srv01 postfix/smtpd[7228]: disconnect from mxtb-pws3.mxtoolbox.com[64.20.227.133]
            Aug 2 19:43:05 srv01 postfix/smtpd[7228]: connect from 79.142.46.196.static.impol.net[196.46.142.79]
            Aug 2 19:43:06 srv01 dovecot: auth-worker(7235): Error: mysql(127.0.0.1): Connect failed to database (vmail): Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0 – waiting for 1 seconds before retry
            Aug 2 19:43:06 srv01 dovecot: auth-worker(7235): Error: mysql(127.0.0.1): Connect failed to database (vmail): Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0 – waiting for 1 seconds before retry
            Aug 2 19:43:07 srv01 dovecot: auth-worker(7235): Error: mysql(127.0.0.1): Connect failed to database (vmail): Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0 – waiting for 5 seconds before retry
            Aug 2 19:43:07 srv01 dovecot: auth-worker(7235): Error: mysql(127.0.0.1): Connect failed to database (vmail): Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0 – waiting for 5 seconds before retry
            Aug 2 19:43:12 srv01 dovecot: auth-worker(7235): Error: mysql(127.0.0.1): Connect failed to database (vmail): Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0 – waiting for 25 seconds before retry
            Aug 2 19:43:16 srv01 postfix/smtpd[7228]: warning: 79.142.46.196.static.impol.net[196.46.142.79]: SASL PLAIN authentication failed: Connection lost to authentication server
            Aug 2 19:43:12 srv01 dovecot: auth-worker(7235): Error: mysql(127.0.0.1): Connect failed to database (vmail): Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0 – waiting for 25 seconds before retry
            Aug 2 19:43:16 srv01 dovecot: auth: Warning: auth client 0 disconnected with 1 pending requests: EOF
            Aug 2 19:43:26 srv01 postfix/smtpd[7228]: warning: 79.142.46.196.static.impol.net[196.46.142.79]: SASL LOGIN authentication failed: Connection lost to authentication server
            Aug 2 19:43:27 srv01 postfix/smtpd[7228]: disconnect from 79.142.46.196.static.impol.net[196.46.142.79]
            Aug 2 19:43:37 srv01 dovecot: auth-worker(7235): Error: mysql(127.0.0.1): Connect failed to database (vmail): Lost connection to MySQL server at ‚reading initial communication packet‘, system error: 0 – waiting for 125 seconds before retry

          • So, ich hab’s jetzt hingekriegt! Hurrraaaa!!! Dein Tutorial taugt doch was. Hat mir keine Ruhe gelassen. Ich hab auf dem Server jetzt Debian v7.6 x64 installiert, das Urgestein. Damit dann zum X-sten Mal buchstabengetreu deine Anleitung umgesetzt, und danach hat alles auf Anhieb geklappt. Musste absolut nichts nacharbeiten oder korrigieren. Läuft!! ;)

  • Hallo Thomas,

    erstmal vielen Dank für die intensive Arbeit, die du investiert hast. Ich habe allerdings noch ein kleines Problem. Die Einrichtung von Thunderbird funktioniert noch nicht, da ich leider nicht wirklich richtig weiss, welchen user und welche domain ich angeben muss. Geschweige denn wird sie von Thunderbird als e-mail Adresse erkannt/verstanden.
    Ich habe die user in SQL angelegt und eigentlich sollten die Postfächer doch unter /ver/vmail angelegt werden, dort tut sich aber gar nichts. Was mache ich falsch??

    Gruss Klaus

    • Hi,

      ja die Postfächer werden in /var/vmail angelegt. Allerdings erst nach dem ersten erfolgreichen Login ;)
      Hast du eine echte Domain angegeben oder arbeitest du mit IP Adressen?

      Die Mailadresse setzt sich ganz einfach aus einem Benutzernamen und der zugehörigen Domain zusammen. Wenn du z.B. in der Datenbank einen Eintrag mit Username: „user“ und domain „email.org“ hast, heißt die Mailadresse für den Login user@email.org

      Als Adressen für die Server gibst du die IP Adresse deines Servers oder die zugeordnete Domain an.

      LG Thomas

  • Vielen Dank für dieses hammer Tutorial! :D wirklich.

    Nur ich habe ein problem:

    jedes mal wenn ich den Accoutn in windows live mail bzw apple mail hinzufügen möchte, kommt: Der Benutzername oder das Passwort sind nicht korrekt.

    was muss ich den als Hostname für imap und smtp einsetzten? die ganz normale domain oder? (beispiel.de)

    und bei:
    insert into users (username, domain, password) values (‚benutzer‘, ‚domain.tld‘, ‚$6$A3ZAyqvdkl4nc8BM$bz8YAW7/0B1DcE2I37epHO/p33MbdVKb0FbGH56Ey1KVO1.m3NPL/s5v35NwFrSZMPTBkrc6DDX6rx2MCQhUa0‘);
    als benutzer bsp support oder support@beispiel.de? die domain.tld ist ja in dem fall beispiel.de oder? xD
    normalerweiße funktioniert so etwas recht gut bei mir, aber er zeigt immer einen Fehler an und ich weiß nicht warum :D
    Grüße Tobias

    • Hi Tobias,

      ja, als Server einfach die Domain ;)
      Wenn du eine Mailadresse „support@beispiel.de“ haben willst, gibst du als username nur „support“ ein und als domain „beispiel.de“. Das „@“ trennt als username und domain.

      Windows Live Mail, hm… Hast du darauf geachtet, ob du die richtigen Ports via StartSSL ansprichst?

      LG Thomas

      PS: Beim Mailclient musst du aber als Benutzername die ganze Mailadresse angeben – also nicht nur das vor dem @

      • Vielen Dank für die schnelle antwort.
        ja ssl über port 143 (obwohl das der standort port für UNVERSCHLÜSSELDE übertragung ist) :D
        bei apple mail geht es ja auch nicht :)
        Testmails lassen sich wunderbar verschicken als root@beispiel.de, aber emails empfangen geht leider nicht, ich bekommen im ein delivery failure :D egal an welchen benutzer

        • Merkwürdig, dass so viele Leute Probleme beim Empfang haben ;)
          Was sagen denn die Mailserver Logs unter /var/log/mail.log bzw mail.err? Hast du für deine Domain auch sog. MX-Records im DNS Zonefile eingestellt? Die werden für den Mailversand benötigt – sind oft schon standardmäßig drin. Aber schau nochmal nach, ob das passt.

          LG Thomas

  • das senden geht ja wunderbar :D nur das empfangen nicht :)

    ich habe es via thunderbird nochmal probiert, aber auch hier ein Fehler :D

    mail.log:

    Apr 23 17:17:01 s17569933 postfix/smtpd[2110]: fatal: no SASL authentication mechanisms
    Apr 23 17:17:02 s17569933 postfix/master[586]: warning: process /usr/lib/postfix/smtpd pid 2110 exit status 1
    Apr 23 17:17:02 s17569933 postfix/master[586]: warning: /usr/lib/postfix/smtpd: bad command startup — throttling
    Apr 23 17:17:03 s17569933 dovecot: auth: Fatal: Unknown database driver ‚mysql‘
    Apr 23 17:17:03 s17569933 dovecot: master: Error: service(auth): command startup failed, throttling
    [gekürzt]

    mail.err

    Apr 23 16:59:56 s17569933 dovecot: imap-login: Error: Timeout waiting for handshake from auth server. my pid=1747, input bytes=0
    Apr 23 16:59:56 s17569933 dovecot: auth: Fatal: Unknown database driver ‚mysql‘
    Apr 23 16:59:56 s17569933 dovecot: master: Error: service(auth): command startup failed, throttling
    [gekürzt]

    es tut mir leid ihre Zeit hier ein wenig zu sehr in Anspruch zu nehmen :D

    • Kein Problem. Den Rest besprechen wir am besten via E-Mail. Ich schick dir gleich eine ;)

      LG Thomas

    • Aus Gründen nimmt Microsoft die Mails von meinem Server nicht an. Es hieß, Teile des IP Netzes seien auf einer Blacklist. Drecksladen. Tz. Deine Pläne, nen eigenen Mailserver zu machen, sind absolut nachvollziehbar ;)

      Dann eben hier nochmal ;)

      das Logfile sagt eigentlich schon, was falsch läuft
      Der erste ist:
      Apr 23 17:01:56 s17569933 postfix/smtpd[2092]: fatal: no SASL
      authentication mechanisms
      Da scheint mit der SASL Auth was nicht okay zu sein. Kontrolliere am
      besten nochmal die zugehörige Konfiguration genau.

      Der zweite Fehler ist, dass Dovecot nicht mit deiner MySQL Datenbank
      umgehen kann:
      Apr 23 17:16:03 s17569933 dovecot: auth: Fatal: Unknown database driver
      ‘mysql’

      Hast du das Paket dovecot-mysql installiert, so wie es in der Anleitung
      steht? Hast du Dovecot auch schon mal neu gestartet?

      Welches Betriebssystem nutzt du? Ubuntu Server 12.04?

      LG Thomas

  • Ports beim Router weiterleiten nicht vergessen! :)

    • Jepp – gut dass du daran erinnerst. Gilt natürlich nur, wenn ihr euren Server Zuhause stehen habt ;) Daran kann es nämlich liegen, wenn zwar E-Mails versendet aber nicht empfangen werden können.

      LG Thomas

      • Vielleicht schreibst du das als letzten (optionalen) Schritt noch mit rein. Ansonsten hat alles prima geklappt! :)

  • So, ich hab den server nochmal komplett gelöscht :D
    Neu aufgesetzt, ja mit Ubuntu 12.04, und kann mich nun auch von clients einloggen :D

    Nur jetzt gibts neue Probleme:
    1.) Ich bekomme bei jedem neustart von postfix folgendes dutzend mal:
    /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: smtpd_relay_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    2.) Muss ich als myorigin in der main.cf beispiel.de oder nur beispiel als domain eintragen? Also muss die tld dran?
    3.) ich kann zwar über Root Emails nach außen senden, jedoch von den mailclients keine senden. Die Fehlermeldung: „Der Empfänger XXXX@XX.xx wurde vom Server abgelehnt, da dass Weiterleiten nicht zulässig ist.

    Grüße Tobias

  • Nein :D
    Fehler beim Senden der Nachricht: Der Mail-Server antwortete: 5.7.1 : Relay access denied. Bitte überprüfen Sie die E-Mail-Adresse tobias.xxxxx@live.de und wiederholen Sie den Vorgang.

    hat es etwas hiermit zu tun?
    smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    oder hiermit?
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <- hier verbiete ich ihm doch Mails nach außen zu senden, die nicht aus seinem Netzwerk kommen? Oder werden die vorher über Dovecot gesendet? :D

  • Hallo Thomas,

    danke schon mal für die tolle Anleitung.
    Ich habe die ganze Anleitung nun schon zwei mal auf einem Debian Wheezy 7.4 gemacht.
    Leider immer ohne Erfolg.
    Das Problem wenn ich mit dem Mailclient ein E-Mail Konto einrichten will, sagt Thunderbird:
    „Konnte keine Einstellungen für Ihre E-Mailadresse finden.“

    Ich mache die Anmeldung über die IP Adresse im lokalen Netzwerk.

    Ich habe einmal den Teil aus der /var/log/mail.log ausgeschnitten was passiert wenn Thunderbirg die Konteneinstellungen testet:
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: connection established
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: master_notify: status 0
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: name_mask: resource
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: name_mask: software
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: connect from unknown[172.17.3.201]
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: unknown: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: 172.17.3.201: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: unknown: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: 172.17.3.201: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: smtp_stream_setup: maxtime=300 enable_deadline=0
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostname: unknown ~? 127.0.0.0/8
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostaddr: 172.17.3.201 ~? 127.0.0.0/8
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostname: unknown ~? [::ffff:127.0.0.0]/104
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostaddr: 172.17.3.201 ~? [::ffff:127.0.0.0]/104
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostname: unknown ~? [::1]/128
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostaddr: 172.17.3.201 ~? [::1]/128
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: unknown: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: 172.17.3.201: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: send attr request = connect
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: send attr ident = submission:172.17.3.201
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: private/anvil: wanted attribute: status
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute name: status
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute value: 0
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: private/anvil: wanted attribute: count
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute name: count
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute value: 1
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: private/anvil: wanted attribute: rate
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute name: rate
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute value: 1
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: private/anvil: wanted attribute: (list terminator)
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute name: (end)
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 220 brief.localdomain ESMTP Postfix (Ubuntu)
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: unknown[172.17.3.201]: 250-brief.localdomain
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250-PIPELINING
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250-SIZE 10240000
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250-VRFY
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250-ETRN
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250-STARTTLS
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250-ENHANCEDSTATUSCODES
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250-8BITMIME
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: > unknown[172.17.3.201]: 250 DSN
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: unknown[172.17.3.201]: 221 2.0.0 Bye
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostname: unknown ~? 127.0.0.0/8
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostaddr: 172.17.3.201 ~? 127.0.0.0/8
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostname: unknown ~? [::ffff:127.0.0.0]/104
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostaddr: 172.17.3.201 ~? [::ffff:127.0.0.0]/104
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostname: unknown ~? [::1]/128
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_hostaddr: 172.17.3.201 ~? [::1]/128
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: unknown: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: match_list_match: 172.17.3.201: no match
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: send attr request = disconnect
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: send attr ident = submission:172.17.3.201

    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: private/anvil: wanted attribute: status
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute name: status
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute value: 0
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: private/anvil: wanted attribute: (list terminator)
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: input attribute name: (end)
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: disconnect from unknown[172.17.3.201]
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: master_notify: status 1
    Apr 28 14:07:27 brief postfix/submission/smtpd[2894]: connection closed
    Apr 28 14:09:07 brief postfix/submission/smtpd[2894]: idle timeout — exiting
    Apr 28 14:09:25 brief postfix/qmgr[2850]: 39B984150D: from=, size=305, nrcpt=1 (queue active)
    Apr 28 14:09:25 brief postfix/qmgr[2850]: 04BDC4150E: from=, size=305, nrcpt=1 (queue active)
    Apr 28 14:09:25 brief postfix/qmgr[2850]: 07F4C3FED6: from=, size=313, nrcpt=1 (queue active)
    Apr 28 14:09:25 brief postfix/lmtp[2962]: 39B984150D: to=, relay=none, delay=1081, delays=1081/0.01/0/0, dsn=4.4.1, status=deferred (connect$
    Apr 28 14:09:25 brief postfix/lmtp[2963]: 04BDC4150E: to=, relay=none, delay=1076, delays=1076/0.01/0/0, dsn=4.4.1, status=deferred (connect$
    Apr 28 14:09:25 brief postfix/lmtp[2964]: 07F4C3FED6: to=, relay=none, delay=1092, delays=1092/0.01/0/0, dsn=4.4.1, status=deferred (connect$
    Apr 28 14:10:47 brief postfix/anvil[2896]: statistics: max connection rate 1/60s for (submission:172.17.3.201) at Apr 28 14:06:10
    Apr 28 14:10:47 brief postfix/anvil[2896]: statistics: max connection count 1 for (submission:172.17.3.201) at Apr 28 14:06:10
    Apr 28 14:10:47 brief postfix/anvil[2896]: statistics: max cache size 1 at Apr 28 14:06:10

    • Hi,

      ich kann auf den ersten und zweiten Blick auch nichts verdächtiges finden. Was sagen denn die Dovecot Logs?

      LG Thomas

      • Nach einigem hin und her hab ich es auf einem Raspberry PI mit dem Raspbian zum laufen gebracht.
        Wichtig ist nur, das man VOR der Installation von dovecot ein modprobe ipv6 ausführt und dann noch ipv6 in die Datei /etc/modules einfügt.
        Sonst kommen bei der Installation von Dovecot ein paar Fehlermeldungen.
        Alles andere klappt jetzt.
        Danke für die detaillierte Anleitung und den schnellen Support.

  • Hallo Zusammen, Hallo Thomas,

    von auch auch erstmal vielen Dank für diese sehr verständliche Anleitung. Leider funktionieren die Dienste bei mir, unter Ubuntu 14.04 LTS, auch nicht wie gewollt. Aber erstmal was mir beim Umsetzen der Anleitung aufgefallen ist und evtl. korrigiert werden muss:

    Punkt: Dovecot installieren und konfigurieren (nur zur Info)

    Das Paket dovecot-commen gibt es nicht mehr, wird aber autom. vom System erkannt und durch dovecot-core ersetzt

    Punkt: Sichere SSL Verbindungen aktivieren

    Die SSL Zertifikatsdateien dovecot.pem befindet sich bei mir nicht wie angegeben unter dem Pfad:

    1. ssl_cert = </etc/ssl/certs/dovecot.pem
    2. ssl_key = </etc/ssl/private/dovecot.pem

    sondern

    1. ssl_cert = </etc/dovecot/dovecot.pem
    2. ssl_key = </etc/dovecot/private/dovecot.pem

    Ich bin noch nicht so firm mit Linux, vielleicht soll das auch genau so sein ;-)

    Ok, weiter im Text. Wie beschrieben habe ich den Test mit bsd-mailx gemacht, welcher zu diesem Zeitpunkt auch noch funktioniert hat! Jetzt, nachdem ich alle Punkte abgearbeitet habe, bekomme ich im Mail Log folgende Rückmeldung:

    May 5 21:45:57 mail postfix/qmgr[1125]: 5AA181440: from=, size=306, nrcpt=1 (queue active)
    May 5 21:45:57 mail postfix/lmtp[3758]: 5AA181440: to=, relay=none, delay=8765, delays=8765/0.02/0/0, dsn=4.4.1, status=deferred (connect to mail.domain.de[private/dovecot-lmtp]: No such file or directory)

    Wird das Verzeichnis dovecot-lmtp unter /var/spool/postfix/private/ automatisch bei der Paket Installation angelegt werden? Bei mir gibt es dieses Verzeichnis , welches ja in der master.cf sowie der main.cf angesprochen wird, nämlich nicht und in der Anleitung finde ich keinen Punkt dass es angelegt werden soll.

    Des Weitern bekomme ich, beim Versuch Thunderbird mit meinem Server zu verbinden, die gleiche Fehlermeldung wie Toni.

    MfG
    Lars

    • Hi Lars

      vielen Dank für deine Rückmeldung. Sieht ganz so aus, als würde die Anleitung nicht mehr ganz auf 14.04 passen. Ich hatte sie ursprünglich für 12.04 geschrieben, bin aber noch nicht dazu gekommen, sie auch auf dem neuen OS auszuprobieren. Das werde ich demnächst mal ausprobieren müssen, schließlich steigen immer mehr User (auch auf dem Server) auf 14.04 um.

      Deine Hinweise kann ich gut brauchen! :)

      LG Thomas

      • Hey Thomas,

        kein Problem. Ich schieb zum Test gleich einfach mal ein Ubuntu 12.04 auf meinen ESX ;)

    • Zum LMTP-Problem: Bei mir gibt es dieses Verzeichnis nach der Installation von Postfix unter Ubuntu 14.04 und der Socket wird auch richtig angelegt. Ist bei der Installation von Postfix vielleicht was schief gegangen?

      Das ist mein Inhalt des Verzeichnisses:
      anvil bsmtp dovecot-lmtp lmtp mailman relay scache tlsmgr verify
      auth defer error local proxymap retry scalemail-backend trace virtual
      bounce discard ifmail maildrop proxywrite rewrite smtp uucp

      Such vielleicht mal nach einzelnen Namen, vielleicht ist es bei dir nur irgendwo anders?

      Ansonsten funktioniert die Anleitung mit Ubuntu 14.04, wenn man nicht einfach nur abschreibt sondern Optionen entsprechend der Anleitung ändert und die Kommentare dazu liest. Wer natürlich einfach nur Config-Files löscht und mit dem Inhalt hier überschreibt, der ist dann selbst Schuld, wenn es nicht funktioniert (wie oben schon angesprochen die Orte, an denen die Zertifikate liegen).

      Viele Grüße

      Dennis

  • Hallo,

    vielen Dank für das tolle Tutorial. Wirklich sehr gelungen :-)
    Ich hätte eine grundlegende Verständnisfrage. Und zwar würde ich gern wissen, ob mit der gezeigten Konfiguration auch noch ein Mailversand per Console z.B. als User root möglich ist. Ich verstehe nicht ganz, wie es sich hier verhält, da ja alle für den Mailversand erlaubten Benutzer via Dovecot/MySQL authentifiziert werden. Muss für den User root dann auch ein Datenbankeintrag vorgenommen werden? Wenn ich jedoch bds-mailx verwende um als root Mails zu versenden, dann kann ich hier ja gar kein Passwort angeben? Irgendwie verstehe ich es nicht richtig.
    Mit ist es wichtig, neben den virtuellen Usern auch Systemmeldungen bei z.B. Backupfehlern versenden zu können. Was muss ich hierfür tun oder funktioniert dies sogar bereits mit Deiner Konfiguration?

    Über eine kurze Aufklärung würde ich mich sehr freuen.

    Grüße
    Thomas

    • Hi Thomas,

      Ein Versand von Nachrichten über die Systemnutzer (z.B. root) ist möglich. Nur das Empfangen ist für diese Benutzer nicht aktiviert, weil ich den Empfang in Dovecot deaktiviere. Das passiert an der Stelle, wo ich die Dovecot Authentifizierungseinstellungen festlege. Dort kommentiere ich die Zeile

      #!include auth-system.conf.ext

      aus. Wenn du für Systembenutzer, die nicht in der Datenbank aufgeführt sind, auch Mails empfangen willst, kommentierst du diese Zeile einfach wieder ein ;) Oder du erstellst einen Eintrag für root@server.tld in der Datenbank – das geht auch.

      Ob der Versand funktioniert, kannst du mit mailx testen: (unter dem jeweiligen systemnutzer ausführen, z.B. root)

      mailx empfänger@server.de

      LG Thomas

      • Hi Thomas,

        herzlichen Dank für Deine Erklärungen. Ich muss es nochmals sagen, echt tolles Tutorial. :-)

        Grüße
        Thomas

  • Vielen Dank für diesen umfassende Tutorial. Alles so erklährt, dass selbst ich es verstehe. :-)
    Leider hab ich ein Problem beim Punkt ‚Neuen Benutzeraccount / Mailadresse hinzufügen‘.

    Bei doveadm pw -s SHA512-CRYPT bekomme ich diese Fehlermeldung:
    doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-master.conf line 93: Unknown setting: service

    Habe schon mehrfach versuchet alles zu kontrollieren, kann aber den Fehler den ich gemacht haben muss nicht finden.
    Ideeen?

  • Bei lokalem Server (eigener Mail Server) die Ports Freischalten! :

    Port 25 (TCP) „Für die Kommunikation von Absender-Server und Empfänger-Server“
    Port 143 (SMTP-TCP) „Für das Senden und Empfangen der E-Mails“
    Port 587 (IMAP-TCP) „Für die Authentifizierung mit dem lokalen server und client“

    • Jörg Schumacher

      Hallo BTL,
      dein Kommentar war GOLD, denn den Port 25 hatte ich nur für 127.0.0.1 freigeschaltet :-)

      Jedenfalls Danke an Thomas, dein Tutorial ebenfalls GOLD, sehr ausführlich Schritt für Schritt und du hast sogar an alle Abhängigkeiten gedacht (Firewall, etc.) Super, bewahre dir bitte diese Anschaulichkeit, damit Linux und OpenSource seinen Schrecken verliert :-) !!!

  • PS: Ich hatte Fetchmail und Sendmail deinstalliert die Standardmäßig bei Debian dabei waren, da ich in der Meinung wa dass man diese nicht braucht. Sendmail ist ja ein MTA und Fetchmail müsste ja ein MDA sein.

  • Danke sehr! Ich habe soweit alles genau so befolgt wie du, aber, wenn ich z.B. mit Outlook oder Mozilla Thunderbird auf meinen Account verbinden will, erscheint folgender Fehler in mail.err: postfix/smtpd[4937]: fatal: no SASL authentication mechanisms
    Woran kann das liegen? Danke :)

    • Hast du eigene SSL Zertifikate erstellt? Und hast du beim Verbinden mit Thunderbird STARTTLS ausgewählt? Poste mal den Inhalt „/var/log/mail.err“ falls da was drin steht.

    • Die Fehlermeldung hört sich für mich so an: Du kein SASL Authentifizierungsmechanismen beim Mail Client genutzt

      • Ich habe die standard- Zertifikate verwendet. Und den Inhalt der mail.err hab ich ja schon gepostet.

        • Mit „da befindet“ meinte ich dass der sich auch 100% an den Ort befindet den du angegeben hast und dass der Benutzer auch de Nötigen Rechte hat um die Datei zu lesen.

          • Da ich ja dem Tutorial gefolgt bin, habe ich die master.cf schon passend abgeändert und meine main.cf müsste eigentlich auch stimmen, da ich auch das aus dem Tutorial eingefügt und meine Daten angepasst habe… An der Domain kanns nicht liegen weil Thunderbird den Server ja erreicht, oder? :)

  • Die Seite kann bei mir mit Firefox nicht ausgedruckt werden. Es erscheinen nur 3 Seiten ohne Inhalt. Woran liegt das ?

    • Hi,

      eine neuere Version von FF hat einen Bug, der dafür sorgt, dass der Druck nicht funktioniert.
      Du kannst versuchen, Die Seite nicht direkt zu drucken, sondern erst als PDF zu „drucken“ / zu speichern und dann diese PDF zu drucken.
      Oder du aktualisierst auf eine neuere Version von FF ;)

      LG Thomas

    • Moment, ich sehe gerade… auch die PDF Generierung gibt nicht alles aus. Ich werde mal nach dem Fehler suchen ;)

      LG Thomas

    • Mit dem Chromium Browser gibt es keine Probleme – abgesehen davon, dass mein Stylesheet absolut nicht auf Drucker ausgerichtet ist. Das muss ich mal nachreichen. Scheint wohl ein Problem mit Firefox zu sein, der die Seitenlänge nicht korrekt berechnet :(

      LG Thomas

  • Mit „Ausgabe in Datei“ und Ziel „postscript“ geht es auch nicht.

    Es wäre eine große Hilfe, wenn man sich alles einmal ausdrucken und kommentieren könnte. An manchen Pnkten kann man sicher noch etwas dran feilen und ich helfe gerne mit, das Ganze zu verbessern.

  • Moin,

    habe alle wie hier beschrieben konfiguriert. Bin auf ein paar Fehler gestoßen die ich durch goolen bereits ausmerzen konnte.
    ich nutze Ubuntu 12.04.

    Derzeit bin ich an dem Punkt, dass ich beim Emfangen von Mails (von gmail) immer den Fehler bekomme:
    warning: SASL: Connect to private/dovecot-auth failed: Connection refused

    ls /var/spool/postfix/private/dovecot-auth
    existiert

    /var/log/mail.err spuckt
    Jun 3 20:28:04 Ubuntu-1204 postfix/smtpd[22097]: fatal: no SASL authentication mechanisms
    aus.

    Irgendwelche Hinweise?

    Danke!

    • Hi,

      hast du die Konfiguration unter „SASL Authentifizierung“ nochmal überprüft? Sind Benutzer und Rechte richtig gesetzt? Ist Dovecot gestartet und läuft?

      LG Thomas

      • Hi Thomas,

        das Problem habe ich nun mit Hilfe von http://ubuntuforums.org/showthread.php?t=1777662 lösen können.
        In /etc/postfix/main.cf:

        smtpd_sasl_path = private/auth

        und in der /etc/dovecot/dovecot.conf

        service auth {
        ...
        unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
        }
        }

        Jetzt läuft alles. Habe noch den Spamhaus-Block eingebaut, funzt super!
        Danke für das Tutorial!

        • Mir fällt grad auf, dass das schon in deinem Tutorial steht.
          Ist wohl in der vielen Googlei und Probiererei kaputt gegangen :)

  • Hallo Thomas,

    vielen Dank für die verständliche Anleitung.
    Gibt es eine Möglichkeit, das Anlegen der Benutzerkonten und Aliase etwas „benutzerfreundlicher“ zu gestalten, z.B. via Web-Front-End (postfixadmin)?
    Mit postfixadmin habe ich es schon unter 14.04 versucht, das nutzt aber seine eigene DB, die auch noch von der im Tutorial beschriebenen Struktur mit den drei Tabellen abweicht.

    Besten Dank!

    Tobias

  • Jetzt habe ich Probleme Mails an Provider wie web.de oder gmx.de zuversenden.
    Ich habe für meine .com Domain ein kostenloses SSL-Zertifikat bei Comodo erstellt (welches für HTTPS auf der Website funktioniert) und ebenfalls ein self-signed Zertifikat. Mit keinem der beiden läuft es. Schon beim Abrufen der Mails bekomme ich eine Meldung von Thurnderbird, dass das Zertifikat fehlferhast ist.
    Beim Versand direkt eine Meldung vom Prodiver, z.B.
    This is the mail system at host Ubuntu-1204-precise-64-minimal.localdomain.

    I'm sorry to have to inform you that your message could not
    be delivered to one or more recipients. It's attached below.

    For further assistance, please send mail to postmaster.

    If you do so, please include this problem report. You can
    delete your own text from the attached returned message.

    The mail system

    : host mx01.emig.gmx.net[213.165.67.115] refused to talk to
    me: 550-Requested action not taken: mailbox unavailable 550-Reject due to
    policy restrictions. 550 For explanation visit
    http://postmaster.gmx.com/en/error-messages?ip=X.X.XXX.XXX&c=poli

    /var/log/mail.log sagt:
    Jun 4 19:30:15 Ubuntu-1204-precise-64-minimal dovecot: imap-login: Disconnected (no auth attempts): rip=217.111.74.126, lip=X.X.XXX.XXX, TLS: SSL_read() failed: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca: SSL alert number 48

    Die Einstellungen in Dovecot (10-ssl.conf):

    ssl_cert = </etc/ssl/certs/dovecot.pem
    ssl_key = </etc/ssl/private/dovecot.pem

    bzw.
    ssl_cert = </etc/apache2/ssl/mydomain.pem
    ssl_key = </etc/apache2/ssl/mydomain.key

    Postfix (main.cf)

    smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
    smtpd_tls_key_file = /etc/ssl/private/postfix.pem

    bzw.
    smtpd_tls_cert_file = </etc/apache2/ssl/mydomain.pem
    smtpd_tls_key_file = </etc/apache2/ssl/mydomain.key

    • Achso, ein reverse DNS habe ich bei meinem Hoster eingetragen und der nslookup darauf funktioniert auch.

      nslookup X.X.XXX.XXX
      Server: 213.133.99.99
      Address: 213.133.99.99#53

      Non-authoritative answer:
      XXX.XXX.X.X.in-addr.arpa name = mydomain.com.

      Authoritative answers can be found from:
      148.9.5.in-addr.arpa nameserver = ns1.your-server.de.
      148.9.5.in-addr.arpa nameserver = ns.second-ns.com.
      148.9.5.in-addr.arpa nameserver = ns3.second-ns.de.

    • Hi,

      irgendwas ist noch mit deiner SSL Konfiguration falsch. Fehlen vllt. Intermediate-Zertifikate? Die musst du unten in die public Key Datei packen.

      LG Thomas

  • Es steht dort bei Punkt „Tabellen anlegen“:
    „Zum Schluss wird noch ein neuer Datenbankbenutzer „vmail” erstellt (Passwort anpassen!), der vollen Zugriff auf diese Datenbank erhält.“
    Welches Passwort soll ich denn hier verwenden ? Das des MySQL root oder wieder ein anders ?

    • Da darfst du dir eins aussuchen ;)
      Der vmail Benutzer wird eingerichtet, damit die Mailserver nicht direkt als MySQL root operieren. Das wäre zu gefährlich. Deswegen arbeiten sie als „vmail“, der aber nur Zugriff auf die Mail-Datenbanken erhält und nicht auf alle weitere Datenbanken, die evtl. noch auf dem Server liegen könnten.

      LG Thomas

  • Bei „Domain hinzufügen“ steht, „… muss ihm mitgeteilt werden, für welche Domains E-Mails verarbeitet / empfangen werden dürfen. “ Welche habe ich denn genau ? Ich habe nur meinen „localhost“ und versandte früher meine Post über freenet (smarthost). Was muss ich jetzt an dieser Stelle eintragen ?

    • Du trägst einfach die Domains ein, für die er Mails empfangen soll. Wenn du z.B. eine Mailadresse nutzer@blabla.de hast, musst du blabla.de als Domain eintragen. Der Mailserver muss nämlich wissen, welche Domains er bei der Verarbeitung berücksichtigen muss. Mails an keineahnung.de werden ihn nicht interessieren.

      LG Thomas

      • So habe ich es gemacht. Jetzt landen die mails an z.B. meine Adresse rrrr@freenet.de aber direkt bei ssss@localhost . Um das System zu testen, würde ich aber gerne das Internet nutzen und sehen, ob der Provider freenet.de die mail des users rrrr auch annimmt. Wie stelle ich das denn ein ? – – Ich bin lediglich Anwender, der versucht seinen postfix wieder in den Griff zu kriegen. Für mich ist die Materie fast unverständlich geworden, seit dem SSL-Desaster.

  • Hallo zusammen,

    Ich habe nun den Server erfolgreich aufgesetzt mit Roundcube. Ich kann nach aussen E-Mails senden, aber erhalte keine. Im Outlook, wenn ich eine Mail sende, erhalte ich folgende Nachricht :
    Reason: 5.1.1 User unknown; rejecting (550)
    Ich habe mir von Intern aus ( Roundcube ) eine testmail gesendet. Da erhalte ich die Mail.

    Könnt Ihr mir weiterhelfen?

    Ansonsten –> SUPER ANLEITUNG!

    Grüsse

    M. T

    • Also wenn ich das richtig verstanden habe: Grundsätzlich funktioniert der Mailversand. Das zeigt ja Roundcube: Du kannst von dort aus verschicken und empfangen. Roundcube ist nichts anderes als ein ganz normaler E-Mail Client wie z.B. Outlook auch.

      Was Outlook angeht: Vllt hilft es, wenn du den Benutzernamen nochmal überprüfst, mit dem Outlook sich anmeldet am SMTP-Server (Postfix). Kann sein, dass Outlook nicht die volle Mailadresse zum anmelden nutzt (das ist aber erforderlich) sondern nur den Teil vor dem „@“.
      Außerdem verwendet Outlook meine ich noch die „login“ authentifizierungsmethode. Also dort, wo du in der Dovecot-Konfiguration „plain“ stehen hast, kommt jetzt rein: „plain, login“ (wenn ich mich nicht täusche, mit Komma getrennt) ;)

      LG Thomas

      • Hallo Thomas,

        Mein Problem hat sich so weit gelöst. Es waren zwei Faktoren welche mich zum Verzweifeln gebracht haben.

        1. Ich hatte nach dem Webmail noch probiert das postfixadmin zu installieren, jedoch Ohne Erfolg. Ich habe die VM zurückgesetzt auf den Stand vor dem Postfixadmin und Siehe da, meine Mails von diversen hostern sind angekommen.

        2. Auf dem Hauptmail von mir war folgendes Problem : Ich habe immer versucht von meiner Hauptmailadresse im Outlook zu testen ( meistens ). Da ich bei unserem internetn Mailserver des Geschäftes meine Domain zu Testzwecken eröffnet hatte, hat er diese Lokal abgeglichen und da war meine eröffnete Adresse nicht vorhanden.

        Momentan klappt alles reibungslos ohne den postfixadmin.

        Danke die für deine Bemühungen

  • Hi

    Vielen Dank für dieses Tutorial.
    Leider habe ich ein (oder mehrere Probleme)
    mein mail.err Log sagt ständig: „fatal: no SASL authentication mechanisms“
    und im mail.log steht: “ warning: SASL: Connect to private/auth failed: No such file or directory“

    was kann es sein? Habe den gesamten SASL überprüft, dieser ist identisch mit deinem!

    Wäre echt toll wenn Du mir weiter helfen könntest.
    Grüße
    Basti

    • OMG, habe den Server nochmal komplett neu aufgesetzt und Schritt-für-Schritt deine Anleitung durchgegangen. ES FUNKTIONIERT ENDLICH. Danke!
      Nach 2 Tagen verlorener Emails endlich wieder Empfangsbereit :D

      • Haha, Glückwunsch! ;) Komplett neu machen war schon öfter der Schlüssel zum Erfolg.

        • Ja ich vermute das noch alte Config Files da waren und die zu Problemen geführt haben.

          Ich hätte aber noch ein paar Fragen bzw. Ergänzungsvorschläge…

          – Einrichten einer Catch-All Adresse
          – Umstellen der Ports für IMAP und SMTP
          – Übertragung von verschlüsselten Passwörtern

          Wäre cool wenn du dazu etwas sagen könntest. Es gibt zwar dazu im Internet viel zu finden, aber ich bin mir zum Beispiel bezüglich der Catch-All Adresse mit der Datenbank nicht wie man das umsetzt. Habe Angst den Mail-Server zu zerschiessen, jetzt wo er so schön läuft ;)

          Grüße und vielen Dank für deine tolle Hilfe und Arbeit!

  • Erstmal auch von meiner Seite ein großes Lob, mit Abstand die beste Anleitung die ich bis dato gefunden habe. :)

    Nur eine kleine Frage habe ich noch dazu: Welchen Spamschutz verwendest du? Nutzt du Spamassassin oder RBL’s um den Spams Herr zu werden?

    • Danke! :)

      Derzeit habe ich noch keinen serverseitigen Spamschutz aktiv. Bisher hatte ich noch nicht die Zeit und die Geduld, etwas einzurichten, aber im Moment geht es auch noch ohne. Wenn ich dann doch mal einen einrichte, gibt es dazu bestimmt eine weitere Anleitung ;)

      Für’s erste kannst du ja auch die Spamhaus Blacklist nutzen (der Beitrag dazu müsste am Ende der Anleitung verlinkt sein). In Zukunft wird bei mir aber wahrscheinlich Spamassasin genutzt. Das soll ja sehr gut sein.

      LG Thomas

  • Sehr schön dargestellt. Ich habe auch alles nachgebaut. Es gibt nur ein Problem: Dovecot legt keine service sockets für postfix an.

    unix_listener /var/spool/postfix/private/auth

    und

    unix_listener /var/spool/postfix/private/dovecot-lmtp

    werden nicht angelegt. Dovecot beschwert sich nicht mal drüber. Es macht es einfach nicht. In den Logs steht auch nichts, was mir da weiterhilft.

    • Das ist schon merkwürdig … vllt werden die Sockets aus irgendeinem Grund woanders angelegt? Oder die entsprechende Konfigurationsdatei für die Services wird nicht geladen?

      LG Thomas

    • Socket /var/spool/postfix/private/dovecot-lmtp wurde erst angelegt nachdem ich in /etc/dovecot/conf.d/01-mail-stack-delivery.conf lmtp zu protocols hinzugefügt habe:

      protocols = imap pop3 lmtp sieve

      Hatte ebenfalls ein Problem mit dem Socket /var/spool/postfix/private/auth. Soweit ich mich erinnern kann, konnte dovecot nicht starten, weil die Datei für das Zertifikat nicht gefunden werden konnte. Ggf. mal in /var/log/upstart/dovecot.log nachschauen.

      Viele Grüße
      Henrik

  • Hallo,

    danke für die Anleitung!

    Ich habe das auf Ubuntu 14.4 durchgeführt.

    Die Pfade zu den PEM Dateien mußte ich ändern, und zwar in
    /etc/postfix/main.cf
    und
    /etc/dovecot/conf.d/10-ssl.conf

    Statt

    doveadm pw -s SHA512-CRYPT

    muss man

    sudo doveadm pw -s SHA512-CRYPT -u benutzer@domain

    benutzen.

    Ich bin mir nicht sicher, wie ich dovecot neu starte. Mit „sudo doveadm reload“ werden z.B. geänderte Passwörter nicht neu geladen.

    Und eine Frage noch: Wenn jemand sein Passwort ändern will, gibt es dafür einen Mechanismus, wie der Benutzer das selbst machen kann?

    Gruß, Till

    • Hi,

      Dovecot startest du neu über service dovecot restart.

      Das normale „doveadm pw -s SHA512-CRYPT“ Kommando funktioniert bei dir nicht? Das ist merkwürdig… Wichtig ist eigentlich nur, dass ein SHA512-CRYPT Hash errechnet wird. Womit – das ist egal. Wenn man einen SHA CRYPT Hash mit MySQL generieren will, kann man das so machen: http://stackoverflow.com/questions/24186158/sha512-crypt-mysql-and-dovecot

      Mir ist bisher kein Plugin o.Ä bekannt, über das der Nutzer sein eigenes Passwort ändern kann. So etwas müsste man dann über eine Weboberfläche und einen Zugriff auf die MySQL Datenbank realisieren.

      LG Thomas

      • Der Befehl
        doveadm pw -s SHA512-CRYPT
        funktioniert auf Ubuntu 14.04 schon, aber ich werde nicht dazu aufgefordert einen Benutzer und/oder eine Domain anzugeben. Ich werde nur zweimal nach einem Passwort gefragt, und dann wird der Hash erzeugt. Aber mir ist völlig unklar für welchen User und für welche Domain dieser Hash gelten soll. Es wird auch im Output nicht angegeben für wen dieser Hash generiert wurde.
        Wenn ich mit diesem Befehl die Hashes von 30 User-Passwörtern erzeugen soll ist er völlig nutzlos.

        Das macht aber schon Sinn:
        doveadm pw -s SHA512-CRYPT -u benutzer@domain.tld
        denn damit erzeuge ich für einen bestimmten User ein Passwort.

  • Ubuntu Server 14.04:
    Dovecot hat bei mir erst nicht funktioniert. Ich erhielt die Fehlermeldung:
    Error: Postfix/Dovecot – warning: SASL: Connect to private/auth failed: No such file or directory

    Die SSL Zertifikatdateien
    /etc/ssl/certs/dovecot.pem
    /etc/ssl/private/dovecot.pem
    waren bei mir nicht vorhanden.

    Ich habe in der /etc/dovecot/conf.d/10-ssl.conf die ursprünglichen Pfade wieder genommen:
    ssl_cert = </etc/dovecot/dovecot.pem
    ssl_key = </etc/dovecot/private/dovecot.pem

    Nun funktioniert alles soweit.
    Sehr gutes Tutorial!

    • dovecot -F
      hilft bei der Fehlerdiagnose.

    • Hi,

      danke für den Tipp! Ich hatte meine Anleitung zwar nochmal mit 14.04 getestet und konnte dabei keine Änderungen bei SSL sehen… das lag aber daran, dass ich „offizielle“ Zertifikate nutze und nicht self-signed. Daher habe ich die Pfadänderung von 12.04 auf 14.04 nicht bemerkt beim testen ;) Hab das in der Anleitung korrigiert.

      LG Thomas

  • Hallo,
    erst einmal vielen Dank für das Klasse Tutorial und jetzt zu meinem Fehler:
    Der Empfang von Nachrichten funktioniert soweit super, doch wenn ich versuche mich via Outlook oder Android-Gerät auf dem Server per IMAP Port 143 anzumelden, bekomme ich nur folgende Zeile in der Log-Datei (mail.log) zurückgeliefert:
    dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=, rip=123.123.123.123, lip=123.123.123.123, TLS: Disconnected, session=

    Dann bekomme ich auf dem Gerät nur die Fehlermeldung „Sichere Verbindung mit Server kann nicht hergestellt werden.“.
    Muss ich die dovecot Zertifikate selbst erstellen und falls ja wie oder was ist der Fehler. Versuche ich die Verbindung mittels telnet localhost 143 herzustellen (oder mit der öffentlichen Adresse) komme ich mit dem Login rein.

    Vielen Dank im Voraus.

    Viele Grüße
    Marcel

    • Hi,

      gerade habe ich die Pfadangabe zu den SSL Zeritifikaten bei Dovecot in meiner Anleitung geändert. Da hatte sich von 12.04 au 14.04 was geändert, das habe ich aber nicht mitbekommen weil ich keine selfsigned Zertifikate mehr nutze.Evtl sind bei dir die Pfade noch falsch.

      Wenn nicht, liegt es vermutlich daran, dass dein Virenschutz oder Outlook keine Self-Signed Zertifikate mag und daher die Verbindung verweigert. Hast du es schon mal mit Mozilla Thunderbird versucht? Das akzeptiert auf Wunsch auch self-signed.

      LG Thomas

  • Ich habe soweit alles genau so befolgt wie du, aber, wenn ich z.B. mit Outlook oder Mozilla Thunderbird auf meinen Account verbinden will, erscheint folgender Fehler in mail.err: postfix/smtpd[4937]: fatal: no SASL authentication mechanisms
    Was kann das für Gründe haben?

  • Hi,

    nachdem ich soweit alles Schritt für Schritt nachvollzogen habe, gibt es beim Versuch über Thunderbird Verbindung aufzunehmen folgende Ausgabe:

    dovecot: imap(benutzer@domain.de): Error: user benutzer@domain.de: Initialization failed: namespace configuration error: inbox=yes namespace missing
    dovecot: imap(benutzer@domain.de): Error: Invalid user settings. Refer to server log for more information.

    Das Verzeichnis für den Benutzer unter /var/vmail/domain/benutzer/ existiert und vmail hat die Rechte…

    Hat jemand eine Idee, was mir fehlt? Danke für Hilfe -.-

    • @Tutorial: Super Anleitung und danke für die Mühe :)

      Zum Problem
      ich erhalte die selbe (von Leycarno genannte) Fehlermeldung seit dem Upgrade von Ubuntu Server 12.04 LTS auf 14.04 LTS. Der Mail-Versand (Postfix-Teil) funktioniert problemlos; der Zugriff über IMAP klappt leider nicht.
      /var/log/mail.err:
      dovecot: imap(user@domain.tld): Error: user user@domain.tld: Initialization failed: namespace configuration error: inbox=yes namespace missing
      dovecot: imap(user@domain.tld): Error: Invalid user settings. Refer to server log for more information.
      In der /var/log/dovecot.log findet sich zeitgleich nur folgendes:
      Oct 04 10:58:23 imap-login: Info: Login: user=, method=PLAIN, rip=x.x.x.x, lip=x.x.x.x, mpid=30597, TLS, session=
      Ich habe das Debug-Logging aktiviert, doch auch in dessen Output findet sich nichts ungewöhnliches bzw. etwas das auf einen Fehler hindeuten würde.
      Wäre um jeden Tipp in die richtige Richtung dankbar :)

      Grüße,
      D0C

  • Hallo,
    bin ich der erste der darüber stolpert?
    Beim Befehl „doveadm pw -s SHA512-CRYPT“
    erhalte ich folgende Fehlermeldung:
    „doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 43: Unknown setting: ssl_prefer_server_ciphers“

    Benutze ich die falsche Version?
    Ubuntu 12.04 und
    ii dovecot-core 1:2.0.19-0ubuntu2 secure mail server that supports mbox, maildir, db
    ii dovecot-imapd 1:2.0.19-0ubuntu2 secure IMAP server that supports mbox, maildir, db
    ii dovecot-lmtpd 1:2.0.19-0ubuntu2 secure LMTP server for Dovecot
    ii dovecot-mysql 1:2.0.19-0ubuntu2 MySQL support for Dovecot

    reicht ein auskommentieren?

    Danke für eine kurze Rückmeldung und besten Gruß

    • Hallo, vermutlich gibt es in der aktuellen Dovecot Version für Ubuntu 12.04 die Einstellung „ssl_prefer_server_ciphers“ noch nicht. Dann einfach auskommentieren ;)

      LG Thomas

      • Hallo Thomas
        vielen Dank für die schnelle Rückmeldung!

        Verand per SMTP funktioniert bestens. Leider finde ich keine eMail im IMAP Eingang:
        Fehler:
        [private/dovecot-lmtp]: No such file or directory)
        aus var/log/mail.log
        postfix/lmtp[2383]: 24xxx: to=, orig_to=, relay=none, delay=2192, delays=2192/0.05/0/0, dsn=4.4.1, status=deferre$eferred (connect to h2xxx.stratoserver.net[private/dovecot-lmtp]: No such file or directory)

        Vielleicht hast Du auch noch ne Idee für nummer Zwei:
        var/log/mail.warn
        postfix/submission/smtpd[2226]: warning: TLS library problem: 2226:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1260:SSL alert number 48:

        Schönen Sonntag und sonnigen Gruß

  • Hallo Thomas,
    erstmal ein Fettes DANKE auch vom mir für diese schöne Anleitung. Echt gut beschrieben, so das ein Neuling, wie ich es bin, die schritte auch nach vollziehen kann. Und vor allen Dingen daraus was lernt.
    Habe allerdings noch mal eine Frage.
    Mit procmail ist es möglich die ankommende Post, welche in dem Haupt Mail Ordner des jeweiligen Benutzers liegt, in verschiedene Ordner zu filtern. Ist dieses hier auch möglich? Oder kann ich hier auch wieder procmail anwenden?
    Die Filterung von procmail sollte gerne so aussehen.
    # This is the configuration file for procmail that is used to
    # extract received propagation alerts into separate files.
    # This is used by the PropagationMonitor SvxLink module.

    LOGFILE=/home/svxlink/procmail.log
    VERBOSE=ON

    # Store received propagation alerts here
    MAILDIR=/var/spool/svxlink/propagation_monitor

    # Put e-mails from the DXrobot (gooddx.net) in the folder below
    :0:
    * ^From.*DXrobot
    /var/spool/svxlink/propagation_monitor/dxrobot

    # Put e-mails from VHFDX (vhfdx.net) in the folder below, due to
    # the change of the domain name you can comment out
    # the next lines
    #:0:
    #* ^From.*DX.Sherlock
    #/var/spool/svxlink/propagation_monitor/vhfdx

    # the new domain name is dxmaps.com
    :0:
    * ^From.*warnings@dxmaps.com
    /var/spool/svxlink/propagation_monitor/vhfdx

    :0:
    * ^From.*@gooddx.*
    /var/spool/svxlink/propagation_monitor/dxrobot

    # Send all other, non matching e-mails, to user root.
    # Replace „!root“ with „/dev/null“ to throw non-matching
    # e-mails away instead or comment both lines below out
    # to just let non-matching e-mails pass through.
    :0:
    /dev/null

    Über eine kurze Antwort würde ich mich freuen.
    Tim

    • Hi Tim,

      freut mich dass dir meine Anleitung geholfen hat! :)

      Von Procmail habe ich leider keine Ahnung, aber du kannst dir meine Beiträge zu Sieve (unten im Beitrag verlinkt) ansehen. Das ist eine Alternative zu procmail. ;)

      LG Thomas

  • Hi Thomas,

    Deine Anleitung ist großartig.

    Danke
    Sandra

  • Hallo Thomas,

    diese Anleitung ist echt klasse! Hab (fast) alles hinbekommen. Hab mir zusätzlich noch Z-Push installiert und hab damit Exchange-Funktionen auf dem iPhone.

    Folgendes Problem habe ich allerdings: Der Mailserver läuft auf meiner .de-Domain. Leite ich E-Mails von meiner .com (anderer Server) an den Mailserver weiter wird die Mail abgelehnt („no such user here“). Was muss ich wo einstellen, dass das klappt? Direkt an .de adressiert klappt’s einwandfrei.

    Gruß,

    Xaver

    • Hi Xaver!

      Das ist merkwürdig. :( Eigentlich sollte es ja für den .de Mailserver keinen Unterschied machen von welchem anderen Mailserver die E-Mail kommt. Das einzige, was mir dazu gerade einfällt, ist, dass du dich bei der Weiterleitung vertippt haben könntest. (Empfänger auf .de Server)

      LG Thomas

      • Finde ich auch, denn meinen eigenen Namen kann ich eigentlich schreiben… Die Weiterleitung stimmt auf jeden Fall!

        Merkwürdig!

        • Gefunden!
          Die shared IP meines .com-Servers steht bei Spamhaus auf der Liste. Es kann doch so einfach sein!

  • Ist es möglich mehrere SSL zertifkate zu nutzen, wenn man unterschiedliche Domains eingetragen hat?

    • Hi,

      du kannst für jeden VirtualHost nur ein Zertifikatspaar (Public und Private Key) angeben. Wenn der Webserver verschiedene Domains versorgen soll,
      solltest du für jede Domain einen eigenen VirtualHost erstellen und in diesem das passende Zertifikatspaar angeben.

      Normalerweise gilt ein Zertifikat nur für höchstens zwei (Sub-) Domains. Die Hauptdomain (domain.tld) und eine weitere Mögliche Subdomain (z.B. http://www.domain.tld). Das ist das maximale, was man mit „normalen“ Zertifikaten herausholen kann. Eine Ausnahme sind sog. Wildcard-Zertifikate, für die im FQDN etwas wie „*.domain.com“ definiert ist. Diese gelten dann für alle Subdomains von domain.com. Das maximal technisch mögliche wäre also ein Zertifikat, das ein Wildcard-Zertifikat ist und im FQDN „*.domain.com“ stehen hat + im AliasName „domain.com“. Dieses würde dann für alle Domainvarianten mit „domain.com“ gelten.

      LG Thomas

  • Ich habe auch alles nach dem Tutorial gemacht und nun folgendes Problem

    doveadm pw -s SHA512-CRYPT
    doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 6: Unknown setting: ssl

  • Hi Thomas,

    Ich benutze Debian Wheezy und das neueste dovecot

  • Hallo Thomas,

    Also wenn ich ihnen eine Mail schreiben darf können Sie sich das auch direkt auf meinem Server anschauen.

  • Hallo Thomas,
    danke für diese wirklich gute Anleitung. Ich selber versuche schon seit einigen Wochen für meinen kleinen Server den E-Mailserver einzurichten. Bis jetzt hat es aber nie geklappt. Ich hatte schon die Befürchtung, dass ich mein System so verhunzt hab, das ich es nicht mehr zum laufen bekommen würde. Doch ich hab deine Anleitung Schritt für Schritt abgearbeitet und er funktioniert. Ich habe da jetzt nur eine Frage, hast du auch ein Tutorial, wie ich nun Postfix-Admin mit in den bestehenden Mail-Server mit einbinden kann? Ich persönlich finde die Verwaltung für die Postfächer sehr angenehm und würde dies gerne auch nutzen.

    LG Christian

    • Mit Postfix-Admin habe ich mich nicht beschäftigt. Möglicherweise lässt sich der Code aber auf mein Mailserver-System übertragen… man müsste dann im Postfix-Admin die entsprechenden Stellen im Code anpassen.

      LG Thomas

      • Hallo Thomas,
        es hat tatsächlich geklappt Postfix-Admin mit einzubinden. Zu mindestens zu 95% ,mit den entsprechenden Abänderungen in dovecot, postfix und den erweiterten SQL-Dateien. Nur die Quota-Regeln lassen sich bis jetzt nicht mit einbinden, da ich dann noch von der postconf Fehlermeldungen bekomme bezüglich unused parameter. Diese sind aber noch nicht so wichtig, da diese, wenn ich es richtig verstanden habe, ja schon mitkonfiguriert wurden. Es ist mir jetzt auf jeden Fall möglich, über den Webbrowser die Domains, Mailboxen und Aliasse einzurichten.

        LG Christian

  • Ich bin deiner Anleitung gefolgt.
    Aber bei der Anmeldung mit Thunderbird bekomme ich die Nachricht: Der aktuelle Vorgang in „Posteingang“ ist fehlgeschlagen. Der server des Kontos „benutzer@domain.tld“ antwortet: (Serverbug) Internal error occurred. Refer to server log for more information. (2014-08-09 13.20.09)

    Auszug aus dem mail.log

    Aug 9 13:20:06 mail postfix/master[2301]: daemon started — version 2.11.0, configuration /etc/postfix
    Aug 9 13:20:09 mail dovecot: imap-login: Login: user=, method=PLAIN, rip=externe IP, lip=interne IP, mpid=2312, TLS, session=
    Aug 9 13:20:09 mail dovecot: imap(benutzer@domain.tld): Error: open(/var/mail/benutzer@domain.tld) failed: Permission denied (euid=1001(vmail) egid=1001(vmail) missing +w perm: /var/mail, we’re not in group 8(mail), dir owned by 0:8 mode=0775)
    Aug 9 13:20:09 mail dovecot: imap(benutzer@domain.tld): Error: Failed to autocreate mailbox INBOX: Internal error occurred. Refer to server log for more information. [2014-08-09 13:20:09]

    Hab ich was übersehen? Kann mir jemand dabei Helfen?

    Cheers
    Blake

    • Hi,

      du hast ein Rechteproblem. Ist es Absicht, dass du /var/mail statt /var/vmail verwendest? Überprüfe nochmal die Rechte der Gruppe vmail an deinem mail-Ordner. Vmail (Benutzer und Gruppe) müssen alle Rechte an /var/(v?)mail/ haben, also am besten Besitzer bzw Gruppe sein.

      Dann kann nämlich Dovecot auch die Mailbox für den User erstellen und der Thunderbird Login funktioniert ;)

      LG Thomas

  • Hallo Thomas,

    super Anleitung! Danke.

    Ich kann aber keine Mails empfangen, egal an welchen Account (hab nur lokale ausprobiert)
    Aug 15 19:52:20 Privatier postfix/lmtp[16470]: EEA6F1C0824: to=, relay=Privatier.localdomain[private/dovecot-lmtp], delay=0.18, delays=0.14/0/0/0.04, dsn=5.1.1, status=bounced (host Privatier.localdomain[private/dovecot-lmtp] said: 550 5.1.1 User doesn't exist: joe@privatier (in reply to RCPT TO command))

    Die user und domains stehen in der Datenbank und ich finde keinen Grund, warum er sie nicht findet.
    Sind die Einträge case-sensitiv?

    Gruß
    Joe

  • Hallo,
    bei mir wurden die Postfächer im Linux User seinem /home Verzeichnis in dem Unterverzeichnis /mail erstellt.
    Wie habe ich da was falsch gemacht?
    Außerdem habe ich wie bei Blake auch diese Permissionprobleme. Ich weiß nicht genau wie ich bzw. was ich da ändern muss. Der User vmail hat eigentlich alle Rechte: drwxrwx—
    MfG

  • Hallo Thomas,

    erstmal vielen Dank für die Anleitung!
    Allerdings habe ich nun ein kleines Problem mit dem zweiten User und der Einbindung des Accounts in einem iPhone.
    Wenn ich den zweiten User mit Thunderbird verbinde, findet er alle Einstellungen und öffnet das Postfach. Beim iphone allerdings, kann ich lediglich den ersten Account einbinden – beim zweiten kann er nicht verbinden. (mit der Meldung das er den Server nicht finden kann, obwohl der erste Account problemlos läuft)

    Ich hoffe du kannst mir helfen,
    Viele Grüße,
    Squarra

  • Hallo,

    schöne Anleitung, vielen dank dafür!

    Nur leider kriege ich eine Fehlermeldung wenn ich folgenden befehl ausführe:

    doveadm pw -s SHA512-CRYPT

    Die rückmeldung lautet:

    doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-master.conf line 85: Unknown setting: service

    Hab mir die Config angeschaut, und ich bin am rätseln was da nicht stimmen soll (line 85 ausschnitt):

    service auth-worker {
    # Auth worker process is run as root by default, so that it can access
    # /etc/shadow. If this isn’t necessary, the user should be changed to
    # $default_internal_user.
    #user = root
    }

    Gruß

  • Hallo Thomas,

    besten Dank für deine Anleitung. Ich möchte gerne in deine Konfiguration die Funktion vom MTA Smarthost integrieren. Also die Mails ausschliesslich über meinen Provider versenden.

    Vermutlich fehlen noch die Zeilen in /etc/postfix/main.cf
    smtp_sasl_security_options = noanonymous
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_password

    Das habe ich zwar versucht -> und anschiessend das postmap /etc/postfix/sasl_password durchgeführt… Aber der Versand klappt noch nicht…

    Ich hoffe du kannst mir weiter helfen :-)

    Gruss
    Hp

  • Moin Thomas,
    auch von mir erstmal Danke für ein sehr gelungenes Tutorial ! Vielleicht ein Hinweis: Ich habe bei dem Passwort für den Benutzer vmail unter anderem die Raute verwendet, damit war kein Login möglich. Fehler lautete immer Access denied, obwohl ich mich in phpmyadmin einloggen konnte. Raute raus – Fehler weg ;-)
    Ein Problem habe ich allerdings noch: Ich habe mir zwei E-Mailkonten lokal angelegt, beide unter Thunderbird mit den von Dir beschriebenen Einstellungen. Versenden läuft auch gut, Empfang untereinander leider nicht. mail.log und mail.err haben hier keine Einträge. Hast Du vielleicht noch eine Idee ?
    Danke !

    • Problem gelöst: In der mysql-domains.cf habe ich bei der query = SELECT * FROM domains WHERE domain=’%s‘ an der Stelle des Buchstaben s den Buchstaben d stehen gehabt …

  • Hallo erstmal Danke für diese Tolle anleitung.
    Dazu erstmal ein super lob für die ausführlichen erklärungen.
    An manchen stellen könnte man ruhig etwas ausführlicher auf die konfiguration eingehen z.B. was genau dieser eine Befehl macht und warum man diesen denn auch unbedingt nehmen sollte und keinen anderen usw.

    Warum ich aber hier schreiben hat einen anderen Grund.
    Ich habe nämlich ein Problem mit dovecot mit dieser Konfiguration.
    Ich kann mich zwar mit meinem Mail Client (Outlook 2010 und E-Mail Client von android) verbinden lediglich was nicht funktioniert ist folgendes:
    – Wenn ich eine empfangen Mail (die habe ich von root aus gesendet mit echo „text“ | mailx -s „test mail“ mail@domain.de) dann kann ich diese auch lesen, aber dovecot markiert sie nicht als gelesen.
    – Wenn ich diese Mail löschen will. löscht dovecot diese auch nicht.

    In /var/log/mail.log und /var/log/mail.err steht folgendes:

    mailpi dovecot: imap(testuser@domain): Error: maildir_file_do(/mnt/mails/vhosts/domain/testuser/mail/cur/1409835709.M668171P4905.mailpi,S=1195,W=1228): Filename keeps changing

    aber in dem pfad /mnt/mails/vhosts/domain/testuser/mail/cur ist aber gar keine mail vorhanden sondern nur in /mnt/mails/vhosts/domain/testuser/mail/new

    Das betriebssystem ist das raspian wheezy also das debian wheezy für rasperry pi

    der pfade /mnt/mails ist gemountet als cifs pfad. Es ist eine Freigabe von einer NAS im netzwerk für Netzlaufwerke für Windows.

    Leider habe ich schon viel geschaut und probiert aber komme dem Problem nicht auf die spur.
    Eventuell haben Sie eine Lösung parat?

  • Hi Thomas,

    nachdem ich mit meinem Mailserver umgezogen bin, erhalte ich keine Mails mehr. Senden funktioniert wunderbar.

    In dem Mail.log finde ich folgende Einträge:

    Sep 7 16:14:01 postfix/error[26810]: B346F260392: to=, relay=none, delay=235, delays=0.22/235/0/0.01, dsn=4.4.2, status=deferred (delivery temporarily suspended: conversation with servername.localdomain[private/dovecot-lmtp] timed out while receiving the initial server greeting)

    Hast du ne Idee was da los sein könnte?

    Gruß
    Blake

  • Schöne Anleitung, aber leider kann ich mich immernoch nicht mit Thunderbird auf mein Konto einloggen.

  • Hallo,

    auch von mir: vielen Dank für die tolle Anleitung.
    Leider habe auch ich irgendwo wohl einen Fehler gemacht, finde ihn aber leider nicht.

    Empfangen von Mails klappt.
    Beim Senden von Mails bekomme ich allerdings die Fehlermeldung


    Sep 11 17:32:35 nemesis postfix/smtpd[1316]: warning: unknown[192.168.100.160]: SASL PLAIN authentication failed: xyzpw18
    Sep 11 17:32:37 nemesis postfix/smtpd[1316]: warning: unknown[192.168.100.160]: SASL LOGIN authentication failed: xyzpw18

    Die IP ist von meinem Thunderbird Client. Installiert habe ich alles auf Arch, nicht auf Ubuntu.

    Hat jemand eventuell einen Tipp für mich?

    Vielen Dank!

  • Danke für den Tipp, aber das ist es glaube ich nicht, da ich via putty alle Werte einfach markiert + kopiert habe. Klammern passen auch…

    • Ok, ich habe glaube den Grund gefunden. An den Configs war alles ok, ich habe in Thunderbird beim SMTP Server die Authentifizierung auf „Passwort, normal“ gehabt. Mit „Keine Authentifizierung“ klappt das senden an mich selber, muss jetzt nur noch schauen, dass ich auch an unbekannte Empfänger mailen kann.

      Vielen Dank nochmal!

  • Hallo Thomas,

    eine SUPER Anleitung! Vielen Dank dafür. Es ist alles sehr klar und vor Allem detailliert geschildert, so dass auch eher ahnunglose Anwender (wie ich) damit zurecht kommen. Ich denke, in dieser Konfiguration würde ich problemlos sofort loslegen können.

    Allerdings habe natürlich auch ich ein paar Fragen, die mich bewegen ;)
    Welchen Zweck hat denn ein Eintrag in die Tabelle aliases der vmail-db? Soll damit eine Zuordnung der abzurufenden Emails zu den jeweiligen Usern im internen Netz stattfinden?
    Ich habe deine Anleitung hier im Netz gefunden, weil ich nach der ganzen NSA-Hektik nun keine Lust mehr habe, meine Emails bei verschiedenen Providern herumliegen zu haben und nach Lösungen gesucht habe.

    Meine Aufgabenstellung ist folgende:
    Ich habe drei Mailadressen für unterscheidliche Zwecke, alle auf IMAP-Konten. Nun möchte ich diese ganzen Emails auf meinen Mailserver bringen und meine Mails von Dovecot oder Fetchmail alle paar Minuten bei den Providern abrufen und auf meine eigene Maschine bringen, um sie dort zu bevorraten.
    Der Server ist über eine Selfhost-DynDNS-Lösung erreichbar. Hier in meinem privaten Netz befinden sich nur Windows-Rechner. Ich möchte daher von meinem Server (Ubuntu 14.04) quasi „inhouse“ meine Mails mit Thunderbird unter Windows abrufen und auch versenden können über meinen Server, welcher dann über Postfix an einen Smarthost sendet. Damit hätte ich hier in meinem Netz gar keinen externen Abruf mehr von einem Windows-Rechner.
    Ein Abruf meiner Mails von extern sollte dann auch auf meinem Server erfolgen, welcher ja die Mails vorhält, die er von den Providern geholt hat.

    Das ist etwas anspruchsvoller, als ich gedacht hatte und deine Anleitung hat mir zwar sehr geholfen, aber den letzten Schritt scheine ich nicht mehr zu finden.

    Hast du da Tipps für mich?

    Danke im Voraus.

  • Hi

    Danke für die Anleitung, die is Klasse und hat auf anhieb bei Mint17 funktioniert.

    Was mir jedoch noch wegen der „Umständlichkeit“ noch nicht gefällt ist die nicht vorhandene Userverwaltung. Gibts da evtl. eine GUI bzw. Scripte die man benutzen kann? Oder legst du wirklich alles per mysql mit C&P vom Passwort an?

    Danke schonmal

    • Hi Willy

      Derzeit arbeite ich an einer einfachen Weboberfläche, über die die Verwaltung später möglich sein soll. Bis zur Fertigstellung wird es allerdings noch etwas dauern… Dann wird die PHP-basierte Software unter einer freien Lizenz veröffentlicht.

      LG Thomas

      • Cool, da bin ich mal gespannt

        Schönen Sonntag noch, auch wenn das Wetter mies ist

      • wäre dafür nicht postfixadmin geeignet?

      • Hallo Thomas. Vielen Dank für das wunderbare Tutorial. Vor ein paar Jahren betrieb ich mehere solche SMTP/IMAP Dinger. Habe dann ein bisschen den Faden verloren und bin soeben wieder etwas am bauen und dabei auf diesen Artikel gestossen. Alles prima!
        Trotzdem noch ein kleiner Hinweis. Du erwähntest in ein einer Antwort, dass du an einer Weboberfläche arbeitest. Schaue doch mal bei diesem Tutorial rein (kennst du wahrscheinlich): https://workaround.org/ispmail/wheezy/managing-your-mail-server
        Hier werden bereits einige solcher Admintools vorgestellt. Du müsstest lediglich die Queries für mysql anpassen (also gleich, wie Christoph Haas das machte) und die Admintools könnten hier auch genutzt werden. Ich habe das jetzt bei mir gemacht und es scheint zu funktionieren – bin immer noch am testen.

        • Hi Fabian,

          sieht interessant aus! Die Website an sich kenne ich, allerdings ist die verlinkte Seite bisher an mit vorüber gegangen.
          Jetzt ist es schon zu spät … ;) Meine Weboberfläche ist schon fertig und wird gerade für die Veröffentlichung vorbereitet.
          Aber eine Alternative mehr, die der Nutzer wählen kann, hat noch nie geschadet ;)

          Dennoch danke für deinen Tipp!

          LG Thomas

  • Super Seite und Anleitung sage ich nur mit einem großem DANKE !!!!

    kleines Problem habe ich mit dem der Sql Abfrage über Dovecot (Alles unter Arch Linux).

    Die Datenbank vmail ist erstellt und kann auch von Dovecot kontaktiert werden allerdings haperts mit derAbfrage bzw. der Syntax mit der ich nicht ganz klar komme.

    die dovecot-sql.conf

    password_query = SELECT username, domain, password FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘

    Fehlermeldung im Log :

    auth-worker(5418): Warning: mysql: Query failed, retrying: Unknown column ‚home‘ in ‚field list‘

    • steht irgendwo der String „home“?

      So sollte es normalerweise klappen (wichtig hier die \ Backslashes)

      password_query = \
      SELECT username, domain, password \
      FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘

      • ich habe leider icht den blassen Dunst wie er auf „home“ kommt, in der dovecot-sql.conf auf jedenfall kein Wort darüber.

        dovecot-sql.conf wie von Dir beschrieben bzw. so stand es ja bereits in der Anleitung geändert mit dem Ergebnis :

        dovecot[11281]: auth-worker(11366): Warning: mysql: Query failed, retrying: Unknown column ‚‘lars’‘ in ‚where clause‘

    • … wie er auf „home“ kommt, ist mir auch gerade ein Rätsel. Wenn ich raten müsste, würde ich sagen, dass irgendwo in der Konfig ein Tippfehler ist, der dafür sorgt, dass ein Attribut von einer anderen Einstellung mit in die SQL Abfrage einbezogen wird. Vllt eine fehlende Klammer o. Ä.

      LG Thomas

      • Danke Thomas…. das mit home hat sich erledigt ging aus der anderen dovecot-sql.conf hervor, aktuell mault er “ Unknown column ‘‘lars’’ in ‘where clause’“ wenn ich versuche mich via Evolution zu verbinden …..

  • „home“ hatte ich vermutet, da:
    auth-worker(5418): Warning: mysql: Query failed, retrying: Unknown column ‘home’ in ‘field list’

    irgendwas passt mit der SQL Abfrage nicht, fehlende Anführungszeichen, bzw. Zeilenwechsel, so was in der Richtung…

  • Hallo zusammen,

    habe alles anhand der Anleitung gemacht, aber trotzdem kann ich mich nicht per Thunderbird oder Outlook connecten…

    Zeigt bei Thunderbird immer wieder an, dass der Username/Passwort nicht korrekt sind oder das keine Einstellungen zu dem User gefunden wurden. Habe den User aber anhand der Anleitung oben in die DB aufgenommen. Anbei noch ein Ausschnitt aus dem Log File – vielleicht hat ja einer eine Idee? Vielen Dank im Voraus!

    dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=, rip=xxx, lip=xxx, sess$
    dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=, rip=xxx, lip=xxx, TLS $
    postfix/anvil[23692]: statistics: max connection rate 2/60s for (smtp:xxx)
    postfix/anvil[23692]: statistics: max connection count 1 for (smtp:xxx)
    postfix/anvil[23692]: statistics: max cache size 1

  • Hallo,

    leider fehlt in deiner dovecot.conf ein Eintrag um Imap auch wirklich zu aktivieren.

    # Enable installed protocols
    !include_try /usr/share/dovecot/protocols.d/*.protocol

    Ohne dem wird kein Listener für imap2 und imaps initializiert.

  • vielen dank für dieses klare tutorial! schöner einstieg in die mailserver welt…
    unter „in freier wildbahn“ wären vielleicht noch diese zwei links interessant, es sollen sich ja angeblich eine menge neulinge (wie ich) auf tutorial seiten herumtreiben :)

    http://www.mailradar.com/openrelay
    http://mxtoolbox.com/diagnostic.aspx

  • Hallo Thomas,

    strike, im zweiten Anlauf hab ich es auch geschafft. Rennt alles. Hurra, bereit für SOGo – oder auch nicht. Das will in MySQL eine andere Datenbank und – schwieriger – hat eine andere Feldstruktur. Ich beziehe mich auf die Anleitung von
    http://www.foteviken.de/?p=1247
    => das ist die etwas versteckte neue Fassung

    Meine Frage(n):
    wie bringe ich beide Datenbanken also ‚vmail‘ von Dir und ‚mail‘ zusammen?
    Gibt es einen dritten, besseren Weg?

    Nochmals Danke für das bisher Erreichte &
    VIele Güße
    Volker

  • Sehr sehr feine Howto. Hat alles auf Anhieb geklappt. Vielen Dank

  • Hey Thomas,
    Na sowas, da musste ich doch glatt zweimal beim Geburtsjahr hinschauen, endlich mal jemand in meiner Altersklasse :)
    Klasse Tutorial, lange Zeit lief mein Mailserver über die einfache Userverwaltung über Systemaccounts statt der Datenbankvariante. Jetzt habe ich mich allerdings doch einmal durch gerungen das zu ändern ‚Never change a running system‚.. ;)
    Leider habe ich ein Problem, weiß allerdings nicht, ob bzw. was ich falsch gemacht habe.
    1. Problem: Der Benutzername muss (warum auch immer) ‚user@domain.tld‘, statt einfach nur ‚user‘ lauten, sonst läuft es nicht unter thunderbird bzw. mit squirrelmail. Ist das „absicht“ oder liegt das an meiner Konfiguration?
    2. Problem: Ich kann Emails problemlos senden, aber leider nicht empfangen. Um es präziser zu sagen, ich kann keine Mails von außerhalb empfangen. Über ‚mailx‘ bekomme ich Emails und kann intern zwischen Usern auch Mails verschicken. Es handelt sich hierbei um einen „frisch“ gemieteten Server, also liegt es nicht an den freigeschalteten Ports oder „alten“ Konfiguarationen, sondern muss ein Konfigurationsproblem sein :/

    ‚/var/log/mail.err‘ Gibt mir keinen Fehler bezüglich dieser Probleme aus und unter ‚/var/log/mail.log‘ finde ich nur, was ich sowieso schon weiß und zwar das er ein Problem mit user= hat und nur user= aktzeptiert..
    Außerdem, falls das irgendwie relevant sein sollte erhalte ich, wie jemand zuvor schonmal hier geschrieben hat die Mitteilung: Oct 9 03:25:12 hostname dovecot: auth: Warning: sql: Ignoring changed iterate_query in /etc/dovecot/dovecot-sql.conf.ext, because userdb sql not used. (If this is intentional, set userdb_warning_disable=yes)

    Hoffe euch/dir fällt was ein.

    LG Moritz

    • * ‘/var/log/mail.err’ Gibt mir keinen Fehler bezüglich dieser Probleme aus und unter ‘/var/log/mail.log’ finde ich nur, was ich sowieso schon weiß und zwar das er ein Problem mit user='userxyz' hat und nur user='userxyz@domain.tld' aktzeptiert..

      (Original sind das Größer/Kleiner als Zeichen statt den ‚Anführungszeichen‘, Habe leider nicht bedacht, dass das hier in der HTML Welt nicht zieht)

      LG Moritz

    • Hi,

      zu 1): Ja, du musst die volle Adresse angeben. Das liegt daran, dass Dovecot sonst nicht weiß, ob benutzer@domain1.de oder benutzer@domain2.de gemeint ist. Daher muss man bei der Angabe hier genauer sein.

      Zu 2): Das kann daran liegen, dass wir evtl der MX-Record für deine Domain fehlt? Oder eine Firewall ist im Weg. Es gibt da eine Menge Fehlerquellen. :-/

      LG Thomas

      • Hey Thomas,
        Danke für die schnelle Antwort. Gibt es vielleicht eine Möglichkeit das ganze etwas zu modifizieren? Ich nutze den Mailserver nur über eine Domain also könnte ich nicht theoretisch in Dovecot festlegen, dass er sich das @domain.tld naja „dazudichten“ soll?
        Die Funktion mehrere Domains nutzen zu können an sich ist Klasse, nur will ich es den Usern meines Systems „ersparen“ das @domain.tld dazuschreiben zu müssen. Ich könnte das natürlich im Squirrelmail z.B. über ein paar zeilen PHP möglich machen, aber schöner wäre es das ganze gleich bei Dovecot zu erledigen.

        Hmm eigentlich habe ich ein MX Record für meine Domain hinzugefügt. Ich hab aber eine andere Idee (Google mail fehlerbericht):
        The recipient server did not accept our requests to connect.
        [(20) sub.domain.tld. [xxx.xxx.xxx.xxx]:25: Connection refused]

        Port 25 ist allerdings bei mir garnicht als SMTP Port frei bzw als solcher irgendwo angegeben, ist ja auch laut dem Tutorial so gewollt, aber anscheinend versuchen gmail und co darüber ihre Mails zuzustellen oder habe ich da was falsch verstanden?
        Vielleicht weißt du da mehr. :)
        Gruß Moritz

        • Hi,

          ich habe gerade auf meinem eigenen Server einen Portscan durchgeführt (… der auf dieser Anleitung basiert). Port 25 ist offen. Auch eine Testmail von Google auf meinen Server hat wunderbar funktioniert. Zur Sicherheit habe ich dir hier noch einmal meine komplette Postfix master.cf hinterlegt, damit du das gegenprüfen kannst: https://paste.trashserver.net/view/955dd57c

          Mit deinem Domain-Wunsch kann ich dir leider nicht weiterhelfen. Mir fällt keine Möglichkeit ein, das so zu realisieren.

          LG Thomas

          • Hey,

            Suuper klasse, vielen vielen Dank, jetzt funktioniert es. Ich Blödi hab Zeile 12 rauskommentiert. Kein wunder, dass das von externen Mailservern nicht funktioniert hat.. ;D
            Danke nochmal :)
            Und wegen dem anderen „Problem“ werde ich nochmal ein bisschen googlen.
            Gruß Moritz

  • Jörg Schumacher

    Hallo Thomas,

    wenn man – wie ich – ein SSL-Zertifikat benutzt, welches zusammen mit einem oder mehrerenIntermediate-Zertifikaten ausgestellt ist (Zertifikat-Chaining) dann kann man diese 1 bis n Zertifikate einfach untereinander in die *.crt – Datei schreiben. Vielleicht kannst du das noch als Extra Tipp in deiner Anleitung ergänzen!

    … dabei muss man darauf achten, dass man von Lokal nach Global geht also:

    ServerCert

    Intermediate1

    ….

    IntermediateN

    RootCA

    Gruß
    Jörg

  • Hallo Thomas,

    da SSLv3 unsicher ist, kann man das in der „ssl_cipher_list“ einfach löschen? Oder hast du ne andere Idee?
    Im Apache kann man es ja mit „SSLProtocol All -SSLv2 -SSLv3“ deaktivieren.

    Gruß
    Blake

  • Hi Thomas,
    Hammer Anleitung !! , aber …

    ich bekomme keine Verbindung per Client zum Server um die Mail abzurufen . Auch senden klappt nicht. Am Iphone sagt die Mail App, dass eine SSL unmöglich sei :/ . Per Thunderbird am PC geht’s auch nicht.

    Im mail.log steht :

    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_list_match: „ipAdressVomClient“: no match
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: smtp_stream_setup: maxtime=300 enable_deadline=0
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostname: p5DD951CE.dip0.t-ipconnect.de ~? 127.0.0.0/8
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostaddr: „ipAdressVomClient“ ~? 127.0.0.0/8
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostname: p5DD951CE.dip0.t-ipconnect.de ~? [::ffff:127.0.0.0]/104
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostaddr: „ipAdressVomClient“ ~? [::ffff:127.0.0.0]/104
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostname: p5DD951CE.dip0.t-ipconnect.de ~? [::1]/128
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostaddr: „ipAdressVomClient“ ~? [::1]/128
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_list_match: p5DD951CE.dip0.t-ipconnect.de: no match
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_list_match: „ipAdressVomClient“: no match
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: send attr request = connect
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: send attr ident = submission:“ipAdressVomClient“
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: private/anvil: wanted attribute: status
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute name: status
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute value: 0
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: private/anvil: wanted attribute: count
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute name: count
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute value: 1
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: private/anvil: wanted attribute: rate
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute name: rate
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute value: 4
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: private/anvil: wanted attribute: (list terminator)
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute name: (end)
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 220 vmd.hoster.net ESMTP Postfix (Ubuntu)
    Oct 19 17:54:58 vmd postfix/smtpd[19092]: disconnect from p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-vmd.hoster.net
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-PIPELINING
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-SIZE 5120000000
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-VRFY
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-ETRN
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-STARTTLS
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-ENHANCEDSTATUSCODES
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250-8BITMIME
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: > p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 250 DSN
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]: 221 2.0.0 Bye
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostname: p5DD951CE.dip0.t-ipconnect.de ~? 127.0.0.0/8
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostaddr: „ipAdressVomClient“ ~? 127.0.0.0/8
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostname: p5DD951CE.dip0.t-ipconnect.de ~? [::ffff:127.0.0.0]/104
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostaddr: „ipAdressVomClient“ ~? [::ffff:127.0.0.0]/104
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostname: p5DD951CE.dip0.t-ipconnect.de ~? [::1]/128
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_hostaddr: „ipAdressVomClient“ ~? [::1]/128
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_list_match: p5DD951CE.dip0.t-ipconnect.de: no match
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: match_list_match: „ipAdressVomClient“: no match
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: send attr request = disconnect
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: send attr ident = submission:“ipAdressVomClient“
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: private/anvil: wanted attribute: status
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute name: status
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute value: 0
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: private/anvil: wanted attribute: (list terminator)
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: input attribute name: (end)
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: disconnect from p5DD951CE.dip0.t-ipconnect.de[„ipAdressVomClient“]
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: master_notify: status 1
    Oct 19 17:54:58 vmd postfix/submission/smtpd[19091]: connection closed

    wichtiger denk ich ist aber die folgende Fehlermeldung im mail.err :

    Oct 19 16:45:23 vmd dovecot: imap-login: Fatal: Couldn’t parse private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: ANY PRIVATE KEY
    Oct 19 16:45:23 vmd dovecot: master: Error: service(imap-login): command startup failed, throttling for 4 secs
    Oct 19 16:45:52 vmd dovecot: master: Error: service(imap-login): command startup failed, throttling for 8 secs
    Oct 19 16:46:01 vmd dovecot: master: Error: service(imap-login): command startup failed, throttling for 16 secs
    Oct 19 16:46:17 vmd dovecot: master: Error: service(imap-login): command startup failed, throttling for 32 secs
    Oct 19 16:46:49 vmd dovecot: master: Error: service(imap-login): command startup failed, throttling for 60 secs

    Oct 19 17:43:50 vmd dovecot: message repeated 11 times: [ imap-login: Fatal: Couldn’t parse private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: ANY PRIVATE KEY]
    Oct 19 17:44:50 vmd dovecot: imap-login: Fatal: Couldn’t parse private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: ANY PRIVATE KEY
    Oct 19 17:54:28 vmd dovecot: message repeated 4 times: [ imap-login: Fatal: Couldn’t parse private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: ANY PRIVATE KEY]
    Oct 19 17:55:28 vmd dovecot: imap-login: Fatal: Couldn’t parse private ssl_key: error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: ANY PRIVATE KEY

    der user ist mail, ich kann auch von einer anderen E-mail mails an mail@domain.net schicken, die landen dann so wies soll in dem entsprechenden user (mail) ordner.

    Das selbsterzeugte Zertifikat funktioniert , benutze es bereits mit einem Apache2.

    Viele Grüße
    René

  • Danke erstmal für die Anleitung,
    Ich habe jedoch 2 Probleme von denen das 2. wohl an T-Online liegt.
    Das System läuft auf einem VPS unter debian 7 64 bit. Es gibt 2 domains die an die IP des Servers gebunden sind. Für eine läuft noch der KK die 2. funktioniert schon. Der A record enthält Ip und domain.de der MX enthält domain.de und mail.domain.de. Wenn ich mir eine Mail schicke landet dieses im queue (sieht man im Webmin) wird aber nicht ins Postfach übermittelt. Das Postfach ist vorhanden, den User in der Mysql Datenbank gibt es auch. Ich kann auf das Postfach per Thunderbird zugreifen. In der mail.err steht folgendes

    Oct 28 01:32:18 vmd5104 dovecot: auth: Error: userdb(webmaster@balkonwetter-dachau.de): client doesn’t have lookup permissions for this user: userdb reply doesn’t contain uid (change userdb socket permissions)
    Oct 28 01:32:18 vmd5104 dovecot: lmtp(8138): Error: user webmaster@balkonwetter-dachau.de: Auth USER lookup failed

    Das finde ich komisch da ja der Zugriff mit Thunderbird funktioniert, also User und Passwort in der db vorhanden sind

    Der 2. Fehler scheint eher ein Problem mit blacklist zu sein wobei das schon bei der ersten mail kam

    Oct 28 01:07:18 vmd5104 postfix/smtp[7519]: 16FF318C0A14: to=, relay=mx03.t-online.de[194.25.134.73]:25, delay=522, delays=522/0.01/0.32/0, dsn=4.0.0, status=deferred (host mx03.t-online.de[194.25.134.73] refused to talk to me: 554 IP=213.136.73.62 – A problem occurred. (Ask your postmaster for help or to contact tosa@rx.t-online.de to clarify.) (BL))
    Letzteres werde ich mal bei t-online nachfragen, zum ersten Teil hoffe ich jedoch hier auf Hilfe

    Gruß René Schulze

  • Update

    Problem 1 gelöst… in der 10-master.conf beim service auth bei einer zeile das # übersehen.
    Problem 2 warte noch auf Antwort von t-online mailen an freenet / google geht, liegt also nicht an meiner config

    Gruß René Schulze

  • Guten Abend zusammen,

    kann mir wer bei folgendem Problem helfe? Ich lese daraus, dass vmail scheinbar nicht auf die Ordner zugreifen kann – allerdings habe ich alles wie in der Anleitung angegeben eingegeben.
    Was muss ich ändern, damit der Fehler nicht mehr auftritt?

    Oct 28 18:06:31 vserver dovecot: imap(user@domain): Error: user user@domain: Initialization failed: Namespace “: mkdir(/var/vmail/domain/user/mail) failed: Permission denied (euid=1001(vmail) egid=1001(vmail) missing +w perm: /var/vmail, dir owned by 770:1001 mode=0755)
    Oct 28 18:06:31 vserver dovecot: imap(user@domain): Error: Invalid user settings. Refer to server log for more information.
    Oct 28 18:06:33 vserver dovecot: imap-login: Disconnected (auth failed, 1 attempts in 2 secs): user=, method=PLAIN, rip=xxx, lip=xxx, TLS: Disconnected, session=

    Vielen Dank im Voraus!

  • Hallo Thomas,

    Vielen Dank für diese tolle Anleitung. Ich hab alles step by step gemacht und hat alles wunderbar geklappt. Nun wenn ich connecten möchte, erhalte ich im Log folgende Meldung:

    Oct 29 19:22:39 dpxmail01 dovecot: imap-login: Disconnected (auth failed, 9 attempts in 57 secs): user=, method=PLAIN, rip=178.194.216.227, lip=176.10.116.14, TLS: Disconnected, session=

    Benutzer und Passwort sind korrekt. Any idea?

    Zusätzlich

    Hab die Zertifikate installiert, im /var/log/mail.log kommt keine Fehlermeldung mehr, aber wenn ich „openssl s_client -connect localhost:imaps“ ausführe, bekomm ich folgende Meldung:

    Verify return code: 21 (unable to verify the first certificate

    Hier auch any idea?

    Liebe Grüsse,
    ninjamatiko

    • Das Problem mit der Authentifizierung hat sich erledigt. Ich war 101% Sicher es wär das Kennwort, doch dieses war falsch :)

      das mit dem Zertifikat hat sich auch erledigt. :)

      danke trotzdem

  • Hi,

    habe ein Problem und zwar ich miete gerade ein VServer mit Ubuntu 14.04 minimal drauf. Ich wollte gerade nach deinem Tutorial ein MailServer drauf setzen. Leider habe ich festgestellt, dass das packet „dovecot-lmtpd“ in repository nicht zu finden ist.

    Hier sind die Fragen:

    kann ich ohne das Pakage dovecot-lmtpd weitermachen?
    wenn nein gibt es eine alternative dazu?
    wie wäre zB. die Deb-Datei vom Pakage einfach zu installieren?

    Viele Grüße
    Pulsar

  • Hallo,
    Ich habe folgendes Problem:
    Ich habe deine anleitung unter debain 7 befolgt, doch wenn ich mit thunderbird versuche mich einzuloggen versucht er es minutenlang und irgentwann bricht er den login wegen timeout ab…
    Ich hoffe du kannst mir helfen.
    Grüße anghenfil

  • Super Tutorial, funktioniert auf Anhieb fast einwandfrei ;)
    Ich habe momentan das selbe Problem mit der fehlenden „homes“ spalte in der Datenbank. Da es dort ja keine wirkliche Lösung gab, greif ich das nochmal auf. Einstellungen sind alle 1:1 aus dem Tut übernommen (bis auf die Passwörter natürlich).
    Log: http://pastebin.com/HYXK1mrk

    Hoffe, jemand kann mir helfen.
    LG Ghost

  • Wenn ich eingebe:

    doveadm pw -s SHA512-CRYPT

    Und dann 2x PW eingegebe, dann erhalte ich einen Hash-Wert, wie beschrieben. Allerdings als ASCII.

    Aber, wenn ich den Vorgang wiederhole erhalte ich einen anderen Hash-Wert. Wieder als ASCII.

    Kann ja nicht der Sinn der Sache sein, oder ?

    Habe jetzt einen Online-Generator benutzt um den Hash-Wert zu generieren. Keine Ahnung, ob ich jetzt via Windows Live Mail E-Mails abholen darf vom Server.

    Ihr solltet statt SHA512-CRYPT lieber PLAIN-MD5 verwenden, da kommt immer der gleiche Hash-Wert raus:

    nano /etc/dovecot/dovecot-sql.conf.ext

    default_pass_scheme = PLAIN-MD5
    ——————————————————-

    SHA512 ist wohl buggy. Keine Ahnung, Ihr seid die Experten.

    • Hi Thomas,

      dass sich der Hash-Wert von SHA512-CRYPT jedes Mal ändert, liegt in der Natur des Algorithmus. ;) Das darf und soll so sein. Der Hash enthält nämlich noch einen Teil, der als „Salt“ dient, und eben dieser ändert sich von Mal zu Mal, deshalb ändert sich auch der Rest des Hashes.

      Auf keinen Fall solltest du das veraltete MD5 nutzen. Das gilt schon seit Jahren als unsicher und sollte nicht mehr verwendet werden.

      LG Thomas

  • Hi Thomas,
    ich wollte mich für Dein tolles Tutorial bedanken. Bei auf einem Ubuntu 14.04 server läuft es out of the box ohne, dass ich von dem abweichen musste, was Du geschrieben hast.
    Dennoch wollte es bei mir erstmal ewig nicht funktionieren und es hat mich 2 Neuinstallationen von Dovecot und Postfix gekostet, bis ich dahintergestiegen bin, wo das Problem lag.
    Letztendlich sahen die Logs soweit gut aus, es gab keine erkennbaren Fehler, aber mit Apple Mail und auch Outlook wollten sich partout nicht mit dem Server verbinden lassen.
    Nachdem ich ferst die Verschlüsselung im Verdacht hatte und fast jede diesbetreffende Zeile einzeln auskommentiert hatte, habe ich die Lösung gefunden, die fast schon zu peinlich ist, um sie hier zu posten.
    Andererseits hilft es vielleicht jemandem, der ein ähnliches Problem hat.
    Mein Fehler lag darin, dass ich bei meinem Mail Client als Benutzernamen den Benutzernamen angegeben habe, der sich auch in der sql Tabelle befindet.
    Die Lösung war stattdessen die komplette email Adresse benutzendem@domain.de als Benutzernamen im Email Client anzugeben und schon funktionierte alles wie von Zauberhand!
    Nochmals danke für die viele Arbeit, die Du sicher in dieses Tutorial hineingesteckt hast!

    Liebe Grüße

    Ingo

  • Moin,
    Installation usw. hat Problemlos geklappt. Ich habe jetzt nur eine Anmerkung/Frage. Wenn ich mich an dem Mailserver mit einem gültigen in der Datenbank vorhandenen User anmelde, kann ich Mails in jedem Namen schicken, den ich will. Also ich melde mich mit user1@….de an und kann aber auch mails im Namen von admin@….de schicken.
    Kann man das irgendwie verhindern? Kann ich da die relay Funktionen noch weiter einschränken, sodass ein user nur mit seinem Usernamen senden darf?
    Für Hilfe wäre ich sehr dankbar.
    MfG

  • Hi Thomas,

    Danke erst mal für dein gutes tut! ich hab grade nur ein kleines problem. ich bekomme beim login mit thunderbird immer folgendes IN MAIL.LOG

    auth: Error: userdb(XXX@YYY.de,XXX.XXX.XXX:X78,): user not found from userdb passwd
    Nov 11 20:36:15 s1 dovecot: imap: Error: Authenticated user not found from userdb, auth lookup id=91396505

    Kannst du mir sagen an welcher Stelle das ungefähr liegen kann? eine DB verbindung scheint er ja auf zum bauen … aber er kann wohl die daten nett sauber abrufen.

    Besten Dank im Vorraus!

    Haggi

  • Erstmal danke für die Anleitung!
    Mein Mailserver lief eine Zeit lang super. Jetzt sind dort mehrere User auf dem Server eingerichtet. Seit ein paar Tagen hängt sich der Server zwischendurch auf, geht aber nach ca. 10 Minuten (aber teilweise auch bis zu einer Stunde) auch wieder problemlos. Als Fehlermeldung kommt:

    Fehler beim Senden des Passworts. Der Mail-Server antwortete: +

    Andere Postfächer können in der Zeit allerdings Problemlos abgerufen werden? Woran könnte das liegen? Mir fehlt leider total der Ansatz wo ich suchen könnte.

    Vielen Dank und schöne Grüße!

  • Guten Tag Herr Leister.

    Ich bedanke mich nochmals für diese Anleitung, habe jedoch eine Frage bzw ein Problem:
    Wenn ich mich beispielsweiße auf meinem Handy die Einstellungen eingebe, kann ich unter smtp/imap meine richtigen Daten eingeben, jedoch unter Email einfach eine exbelige und Postfix lässt diese „Mogel“-mailadresse zu ohne somit den Loginname mit der angegebenen Adresse zu vergleichen.

    Grüße Tobias

  • Hi Thomas,

    erst mal vielen Dank und ein großes Lob für diese wirklich sehr gut gelunge Anleitung. Die „Basis“-Konfiguration habe ich schon hinter mir und moment arbeite ich die Erweiterungen ab ;).

    Bisher funktioniert alles soweit ganz gut, ich habe aber ein kleines Problem mit WebMUM. Und zwar wird die style.css nicht berücksichtigt. Versuche ich auf diese direkt über die URL (domain/include/css/style.css) zuzugreifen, werde ich auf die Seite „404.php“ von dir umgeleitet. Mir war aufgefallen, dass dies bei deiner WebMUM-Demo nicht der Fall ist. Dort wird mir der Inhalt der css-Datei anzegeigt. Hast du evtl. eine Idee woran das liegen könnte?
    In den log-Dateien meines Apache’s habe ich leider nichts auffälliges gefunden (LogLevel debug rewrite:trace8). Die Berechtigungen auf Dateisystemebene sehen auch gut aus (755 für die Verzeichnise und 644 für die css-Datei mit owner www-data). Leider kenne ich mich mit php nicht so gut aus, als das ich einen Fehler in den php-Dateien finden kann :(.

    Ansonsten noch eine kleine Anmerkungen / Verbesserungsidee. Ich habe bei mir die edituser.php dahingegend angepasst, dass bei leerem mailbox_limit-Feld der Wert auch nicht an das SQL-Kommando weitergereicht wird (einfache if-Abfrage). Bei leerem Feld wird eine ‚0‘ weitergereicht, was dazuführt, dass auch die Zelle mailbox_limit in der Datenbank auf 0 gesetzt wird. Sprich der festgelegte Standardwert wird nicht berücksichtigt. Mir war das aufgefallen, da ein einen von 0 verschiedenen Standardwert in der MYSQL-DB hinterlegt habe.

    LG Mark

    • Hi,

      das Problem mit der CSS Datei hatte auch schon ein anderer User. Es tritt anscheinend nur in Kombination mit dem Apache Webserver auf. Leider habe ich noch keine Lösung dazu. Ich vermute, dass mit den Rewrite Rules etwas nicht stimmt.

      Was Apache angeht kann ich da leider nicht weiterhelfen, … hab nur Nginx im Einsatz.

      LG Thomas

    • Deine kleine Verbesserung mit dem mailbox_limit habe ich übrigens aufgenommen und habe den Quellcode auf GitHub aktualisiert ;)
      Danke für die Anregung!

      LG Thomas

      • Hi Thomas,

        danke für die schnelle Antwort und es freut mich, dass ich etwas beitragen konnte :).

        Ich habe mich jetzt mit nem Dirty-Hack beholfen, aber evtl. hilft es ja dem ein oder anderen, der vor dem gleichen Problem steht, hoffe nur das mit den HTML-Tags klappt soweit:

        In der Datei webmum/include/php/template/header.php die Zeile
        <link rel=stylesheet...
        löschen oder auskommentieren und zwischen die Zeilen

        <style type="text/css">
        ...
        </style>

        Den Inhalt der Datei webmum/include/css/style.css einfügen.

        Dann ist es zwar außen hui und innen pfui, aber besser als andersherum :).

        LG Mark

        • Kommando zurück, funzt leider doch nicht zu 100% :(.

        • So jetzt hier die Lösung für das css-Problem beim Apache! Soweit ich das nachvollzogen habe, versucht die index.php auch die css-Datei zu verwerten, was natürlich nicht klappt. Daher muss man eine weitere Regel einführen, die quasi den Link zur css-Datei abfängt und nicht an die index.php weiterreicht. Dazu muss man folgende Zeile direkt nach der zweiten RewriteCond-Zeile einfügen:

          Mit Unterverzeichnis
          RewriteRule ^\/webmum/(.*)\.css$ /webmum/$1.css [L]

          Ohne Unterverzeichnis
          RewriteRule (.*)\.css$ $1.css [L]

          Zusätzlich fehlt noch ein „/“ vor dem index.php in der Konfiguration ohne Unterverzeichnis. Danach hat alles bei mir wunderbar funktioniert.

          LG Mark

      • Hi Thomas,

        noch eine kleine Anmerkung. Habe mir eben mal den aktuellen commit im GitHub angeschaut und wir hatten uns anscheind mißverstanden, da das Problem dadurch nicht gelöst wird. Hier ist meine Lösung:


        if($mailbox_limit == ""){
          $sql = "INSERT INTO `".DBT_USERS."` (`".DBC_USERS_USERNAME."`, `".DBC_USERS_DOMAIN."`, `".DBC_USERS_PASSWORD."`) VALUES ('$username', '$domain', '$pass_hash')";
        }
        else {
          $sql = "INSERT INTO `".DBT_USERS."` (`".DBC_USERS_USERNAME."`, `".DBC_USERS_DOMAIN."`, `".DBC_USERS_PASSWORD."`, `".DBC_USERS_MAILBOXLIMIT."`) VALUES ('$username', '$domain', '$pass_hash', '$mailbox_limit')";
        }

        Falls mailbox_limit leer ist, wird „INSERT INTO “ ohne den Parameter mailbox_limit aufgerufen. Erst dardurch wird auf den Standardwert zurückgegriffen, der in der MYSQL-DB hinterlegt ist. Das finde ich geschickter, da man ansonsten den Standardwert in der php-Datei festlegen müsste.

        LG Mark

        • Hi,

          hab nachgefeilt und nun liest WebMUM den Default-Wert für die mailbox_limit-Spalte aus der DB aus und belegt das entsprechende Feld im Frontend damit vor. Außerdem wurde dem Feld ein „required“ Attribut verpasst. Das und noch etwas mehr in Ver. 0.1.5, die ab sofort auf GitHub verfügbar ist. :)

          LG Thomas

  • Hey und erstmal vielen Dank für die super Anleitung. Läuft alles tadellos. Nur kann ich keinen Platzhalter für die Domain eintragen. Also wenn man z.B. eine Mail an x3@example.com schickt und die EMail Adresse nicht vorhanden ist, wird die Mail automatisch verworfen. Gibt es eine Möglichkeit sie in ein entsprechendes Postfach zu verschieben?

    LG Christian

    • Hab jetzt eine Lösung gefunden (wenn auch keine sehr schöne):

      Du kannst ja mit einem Alias (Source-Destination) @domain.tld => postmaster@domain.tld einen Catch-All-Alias einrichten. D.h. alle Mails, die an eine Adresse mit domain.tld gehen, werden an postmaster@domain.tld weitergeleitet. (Nach dieser Umleitung findet übrigens keine weitere, rekursive Umleitung statt – nix Endlosschleife also ;) )

      Jetzt hast du nur das Problem, dass Aliase eine höhere Priorität haben als tatsächlich existierende Mailboxen. Heißt: Sobald du einen solchen Catch-All für eine Domain einrichtest, laufen alle Mails über diesen Catch-All, unabhängig davon, ob eine Mailbox existiert. Das will man ja eigentlich genau umgekehrt haben: Wenn eine Mailbox nicht existiert, dann sollen erst die Aliase untersucht und benutzt werden.

      Dummerweise kann die Priorität bei Postfix aber nicht geändert werden: Erst werden immer die Aliase benutzt, dann wird ggf geschaut, ob vllt doch eine echte Mailbox auf den Empfänger passt.

      Die einzige Möglichkeit, das zu umgehen:
      Du machst trotzdem einen Catch-All… („@domain.tld => postmaster@domain.tld), allerdings richtest du für jede Mailbox noch einen solchen Alias ein:

      benutzer1@domain.tld => benutzer1@domain.tld
      benutzer2@domain.tld => benutzer2@domain.tld
      ...

      … also für jede Mailbox noch einen Alias, der auf sich selbst verweist. So umgehst du das Problem, dass alle Mails wegen des Domain-Catch-Alls beim postmaster landen würden ;) … weil nun auch für Mailboxen jeweils ein Alias zur Verfügung steht, und diese Aliase haben vorrang vor einem Catch-All-Alias :)

      LG Thomas

  • Vielleicht habe ich mich auch etwasmissverständlich ausgedrückt…
    Ich habe die anderen Posts auch schon gelesen und ja mal kann mit @example.com die Mails in ein Postfach weiter leiten, nur landen dann leider alle anderen Mails der Domain auch dort. Ich habe dann probiert verschiedenste Ansätze probiert, bin jedoch nicht zu einer Lösung gekommen. Sei es über ein modifiziertes Query oder Aufruf einer Datei ( catch-all ), wenn das Statement keinen Result liefert. Bin langsam echt am verzweifeln^^ Habe auch Spamassasi, sowie Amavis amlaufen, dachte das es vielleicht hier zu einer Vorfilterung kommt, aber das scheint auch nicht der Fall zu sein. Über Ratschläge oder Hilfe, wäre ich sehr dankbar.

  • Hallo Thomas,

    leider muss ich mich nochmal melden, ich bekomm mein Problem leider immer noch nicht gelöst. Ich hab die kompletten Messages nochmal rausgesucht und lediglich User, Domain und IP`s masikert. hoffe du kannst mir weiter helfen. Ich hab jetzt schon ein paar Stunden gesucht und finde die Lösung einfach nicht.

    Nov 15 16:05:40 s1 dovecot: auth: Warning: sql: Ignoring changed user_query in /etc/dovecot/dovecot-sql.conf.ext, because userdb sql not used. (If this is intentional, set userdb_warning_disable=yes)
    Nov 15 16:05:43 s1 dovecot: auth: Error: userdb(user@domain.dee,34.xxx.xxx.xxx,): user not found from userdb passwd
    Nov 15 16:05:43 s1 dovecot: imap: Error: Authenticated user not found from userdb, auth lookup id=3257401345 (client-pid=1383 client-id=1)
    Nov 15 16:05:43 s1 dovecot: imap-login: Internal login failure (pid=1383 id=1) (internal failure, 1 successful auths): user=, method=PLAIN, rip=xx.xx.xx.xx, lip=37.xx.xx.xx, mpid=1389, TLS, session=
    Nov 15 16:05:45 s1 dovecot: auth: Error: userdb(user@domain.de,xx.xx.xxx.xxx,): user not found from userdb passwd
    Nov 15 16:05:45 s1 dovecot: imap: Error: Authenticated user not found from userdb, auth lookup id=1303117825 (client-pid=1390 client-id=1)
    Nov 15 16:05:45 s1 dovecot: imap-login: Internal login failure (pid=1390 id=1) (internal failure, 1 successful auths): user=, method=PLAIN, rip=xx.xx.226.xxx, lip=xx.1xx.xx.xx, mpid=1391, TLS, session=

    Besten Dank

    Gruß Haggi (Christian)

  • Hallo Thomas,

    ich habe einen V-Server mit eigener Domain, dort habe ich nach Deiner Anleitung einen Mailserver installiert.
    Das leif alles einwandfrei bis ich letzte Woche das System mit apt-get upgrade updatete.
    Man kann noch Mails an meine Adresse senden, es kommt aber nichts an. Dem Absender wird nichts angezeigt, von wegen nicht zustellbar oder sonst was.
    Die Mails die ich mit getmail in meine Postfächer hole sind ganz normal da.
    In den Logs habe ich nichts aussergewöhliches gefunden, zumindest nichts was ich als fehler interpretiere.
    Wo kann ich anfangen den Fehler zu suchen?

    Gruss Toni

    • Habe was rausgefunden, da ich keinerlei Daten in den Logfiles fand habe ich mal die Firewall Einstellungen überprüft.
      sobald ich den Port 25 öffne bekomme ich wieder Mails rein.
      Nur komisch das es vorher auch ohne den offenen Port 25 über Port 465 SMTPS ging.
      Kann das am Update vom Linux liegen?

  • Schöne Anleitung und auch gut erklärt. Allerdings habe ich das Problem, das ich keine Mails senden kann. Immer wenn ich eine Mail in Thunderbird sende, kommt folgende Meldung: Die Nachricht konnte aus unbekannten Gründen nicht über den SMTP-Server smtp.blamberg-wenzel.de gesendet werden. Der Empfang klappt wunderbar. Die mail.err enthält leider keine weiteren Informationen. Woran kann es liegen? Hab ich etwas übersehen? Ich bitte um Hilfe.

    • Konnte das Problem selber lösen. Da ich ein selbst erstelltes Zertifikat benutze, musste ich in Thunderbird die Ausnahmeregel erst hinzufügen.

  • Danke für die Anleitung leider bekomme ich den Server nicht zum fliegen
    service postfix reload
    * Reloading Postfix configuration… postfix: fatal: /etc/postfix/main.cf, line 30-39: missing ‚=‘ after attribute name: „submission inet n – – – – smtpd -v -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject“
    [fail]

    • Hallo Ronny,

      Falls das Problem noch aktuell ist: die entsprechenden Zeilen gehören nicht in die main.cf sonder die master.cf (denselben Fehler habe ich gerade eben auch gemacht).

      LG Benjamin

  • Hallo Herr Leister,

    Ich möchte mich an dieser Stelle für Ihre herausragende Arbeit bedanken!
    Danke dieser Anleitung habe ich jetzt auch einen voll funktionsfähigen mailserver.

  • Tolles Tutorial. Alles sehr verständlich.

    Eine Anmerkung habe ich jedoch. Unter Postfix kann man einen catchall-Alias anlegen. Dieser Alias leitet alle Emails an eine einzige Email Adresse weiter.

    Ein Beispiel:

    Source: @example.com
    Destination: postmaster@example.com

    Hat man so eine Konfiguration in seiner Alias-Tabelle hinterlegt, landen alle Emails bei postmaster@example.com, egal ob es weitere Aliases hinterlegt sind, wie:

    Source: root@example.com
    Destination: admin@example.com

    Damit das nicht passiert, muss ein Alias Mapping auf die eigentlich Email-Adresse angelegt werden:

    Source: admin@example.com
    Destination: admin@example.com

    Hat man das gemacht, gehen auch Konstrukte wie:

    Source: adminandpostmaster@example.com
    Destination: admin@example.com

    Source: adminandpostmaster@example.com
    Destination: postmaster@example.com

    Dieses erlaubt das weiterleiten an zwei Email-Adressen.

    Weiter Informationen findet man unter:
    https://workaround.org/book/export/html/58

  • Das aufsetzen des Servers hat super funktioniert. Nun möchte ich jedoch noch Mails für einen bestimmten Empfänger an einen anderen Mailserver relayen. Wie kann ich das nun in diesem Setup noch einbauen?

    LG

  • Hey, vielen Danke für deine Anleitung!
    Sie hatte die richtige Mischung aus Verständlichkeit und Erklärung.

    Ich habe deine Anleitung meiner Meinung nach korrekt befolgt. Verbindungen von außen zum Server sind nicht möglich. echo "Hallo Welt Text" | mailx -s "Hallo Welt" mailadresse liefert mir aber folgendes in der /var/log/mail.err:
    postfix/smtpd[4409]: fatal: no SASL authentication mechanisms
    und in der /var/log/mail.log:
    to=, relay=none, delay=2181, delays=2181/0.03/0/0, dsn=4.4.1, status=deferred (connect to domain.tld[private/dovecot-lmtp]: No such file or directory)

    Ich hatte vor deiner Anleitung eine andere versucht, die bei mir aber zu gar nichts geführt hat. Ich hatte die Pakete danach mit apt-get purge entfernt und ein bisschen aufgeräumt. Ich kann aber nicht ausschließen, dass da noch etwas von übrig geblieben ist.
    Alles aus Anleitung und Kommentaren, was sie auf SASL bezieht, habe ich schon mehrmals überprüft. Komplettes neu aufsetzen des Servers scheidet aus, weil er momentan im Einsatz ist.

    Wenn du mir behilflich sein könntest, wäre ich dir überaus dankbar!

    Grüße,
    Joshua

    • Habe meine Probleme mittlerweile alle selbst lösen können. War eine Kombination aus falsch abgschrieben und falscher alter Konfiguration.

  • Viel Dank!

  • Geniale Anleitung, funktioniert auf Anhieb. Eine Frage hätte ich noch. Wie realisiert man am besten mit diesem Konzept, in dem es nur virtuelle Benutzer und Aliase gibt, das Pipen einer Nachricht in ein Script, z.B. mit dem Ziel einen einfachen Listenprozessor und Mailverteiler aufzusetzen. Procmail passt irgenwie nicht richtig dazu und ich bin nicht sicher ob Sieve (fileinto ??) dafuer geeignet ist. Der Versuch, einen virtuellen Alias zu missbrauchen ( | „/path/script“) schlug natuerlich fehl, weil ich den Catchcall Alias fuer nicht existierende Mailboxen bereits aktiviert hatte. Vielleicht einen Injector in master.cf in der Art von amavis oder clam-smtpd ? Für einen Tipp wäre ich dankbar.

    Viele Grüße
    Christian

    • Inzwischen habe ich das Gefuehl dass ein globales sieve-Filter mit der „Pigeonhole Extprograms“ Erweiterung das beschriebene Problem loesen koennte. Hat jemand zufaellig Erfahrungen damit oder ein Beispiel zur Hand ?

      VG
      Christian

  • super Anleitung – hat gleich geklappt, danke!

    Ich bin Anfänger in diesem Bereich und habe eine Frage:
    Ich möchte ein gekauftes SSL Zertifikat verwenden.
    Bei der Bestellung habe ich folgendes erhalten:

    – *.crt
    – *.int
    – *.key

    Außerdem waren im E-mail noch folgende Zertifikate als Text angehängt:
    ############################################################
    Your QuickSSL Basic SSL Certificate Is Below
    ############################################################
    —–BEGIN CERTIFICATE—–

    —–END CERTIFICATE—–

    ############################################################
    Required Intermediate SSL Certificates (CA) Are Below
    ############################################################
    —–BEGIN CERTIFICATE—–

    —–END CERTIFICATE—–

    Wo muss ich jetzt welches Zertifikat verwenden?
    In der 10-ssl.conf von Dovecot sind momentan die selbst generierten Zertifikate definiert:
    ssl = required
    ssl_cert = </etc/dovecot/dovecot.pem
    ssl_key = </etc/dovecot/private/dovecot.pem

    Und in der main.cs von Postfix:
    ##### TLS parameters ######
    smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

    Ich habe aber kein File *.pem !? Kann ich einfach die Dateiendung ändern? Oder auch *.crt Dateien angeben?

    Muss ich an einer anderen Stelle noch etwas ändern?

    Grüße
    Thomas

  • Hallo Thomas,

    Erstmal, vielen, vielen Dank für deine Mühe und Arbeit. Ich konnte deine Anleitung 1:1 auf mein Debian Jessie 8.0 übertragen – hat alles geklappt. Einzig bei der Installation von Dovecot musste ich ein bisschen tricksen und wie folgt vorgehen:
    1) apt-get install dovecot-core dovecot-imapd dovecot-mysql dovecot-lmtpd
    Es erscheint eine Fehlermeldung, diese soweit ignorieren.
    2) sh /usr/share/doc/dovecot-core/dovecot/mkcert.sh (damit werden die SSL Zertifikate erstellt)
    3) apt-get install dovecot-core dovecot-imapd dovecot-mysql dovecot-lmtpd

    Die Installation schlägt fehl weil in den Zeilen:
    ssl_cert = </etc/dovecot/dovecot.pem
    ssl_key = </etc/dovecot/private/dovecot.pem

    schon etwas drin steht und der installer die Dateien natürlich nicht findet.

  • Hi

    Ich hab leider ein ziemlich grosses Problem; mein Mailserver ist wohl aufgrund der Konfiguration auf der Blickliste.
    Hier die Ausgabe eines entsprechenden Tools:
    Checking 37-51-209-178.static.edis.at which resolves to 127.0.0.2 against 100 known blacklists…
    http://mxtoolbox.com/archive/?actionstring=blacklist:37-51-209-178.static.edis.at

    Wie du siehst löst es auf localhost auf, daher frage ich dich ob du weisst wie man das beheben kann? Es sollte ja eigentlich auf meine Domain oder so auflösen.

  • Hi Thomas

    Konnte das Problem inzwischen lösen, sind zwei Einstellungen in der /etc/postfix/main.cf Datei.
    inet_protocols = ipv4 #Google motzt wenn man über 4 und 6 senden möchte (siehe http://www.magento4all.com/news/likely-unsolicited-mail/)
    myhostname = z33.ch #Sonst versucht er es mit dem dDNS-Namen der bei mir auf so gut wie allen Blacklisten steht.

    Evtl. würde ich das noch ergänzen.

  • Hallo,

    ich habe noch ein Problem mit WebMUM. Wenn ich mich einloggen wills meldet der Webserver “ „The requested URL /webmum/login/ was not found on this server.“ . Wenn ich nachsehe existiert dieses Verzeichnis auch nicht. Habe ich was übersehen?
    Ich nutze Ubuntu 14.04 und habe alles im Vezeichnis „/var/www/html“ als Unterverzeichnis „webmum“. Der Besitzer ist „www-data“.

    Vielen Dank
    Frank

  • Hallo lieber Thomas,

    ein sehr tolles Tutorial! Wohl das beste, was ich bisher gefunden habe.
    Ein paar Kleinigkeiten, die mir aufgefallen sind:

    1. Nachdem ich Deine Anleitung Schritt-für-Schritt befolgt habe, hat das System noch nicht funktioniert.
    /var/log/mail.info sagte folgendes: „status=deferred (connect to my-domain.com[private/dovecot-lmtp]: No such file or directory)“
    Gelöst habe ich das wie folgt:
    In eine von /etc/dovecot/dovecot.conf eingebundene Datei (ich habe /etc/dovecot/conf.d/01-mail-stack-delivery.conf verwendet)
    muss folgendes rein: `protocols = imap lmtp`
    Ansonsten unterstützt Dovecot das lmtp Protokoll nicht ;) Vll. liegt das daran, dass ich Debian Wheezy mit Dovecot 2.1.7 verwende.
    2. Du beschreibst ja auch wie man den mysql-server installiert – Toll! :)
    Allerdings hat mir dabei folgendes nicht gefallen:
    `GRANT ALL ON vmail.* TO ‚vmail’@’localhost‘ IDENTIFIED BY ‚vmailpasswort‘;`
    Da der Benutzer vmail nur Leserechte („SELECT“) benötigt, reicht es vollkommen aus, ihm auch nur Leserechte (und nicht „ALL“ Rechte) zu geben:
    `GRANT SELECT ON vmail.* TO ‚vmail’@’localhost‘ IDENTIFIED BY ‚vmailpasswort‘;`
    Nach so einer Änderung sollte generell immer `FLUSH PRIVILEGES;` ausgeführt werden.
    3. Der Vollständigkeit halber wäre hier noch eine kurze Erklärung / Anleitung für den SPF (Sender Policy Framework) ganz gut :))
    4. Über die Einstellung `imap_idle_notify_interval = 20 mins` in einer Dovecot Konfigurationsdatei kann Push-Mail aktiviert werden. Ist ganz empfehlenswert :)
    5. Über `login_log_format_elements = „user= method=%m rip=%r lip=%l mpid=%e %c %k“` in einer Dovecot-config-Datei ist der Output in einer /var/log/mail.* Datei etwas besser. Dann sieht man auch gleich, was genau für ein Protokoll usw. verwendet wird.
    6. Weiterhin sollte `auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@` gesetzt sein.

    Ansonsten freue ich mich über jeden weiteren Artikel in Deinem Blog.
    Mach‘ weiter so!!

    • Danke für deine Anregungen! :)

      Ich werde die demnächst mit in den Beitrag aufnehmen. Dass du lmtp extra mit reinnehmen musstest, liegt soweit ich weiß an Debian. Unter Ubuntu 14.04 ist das nicht notwendig.

      LG Thomas

      • Hallo Thomas,

        dass ich ‚protocols = imap lmtp‘ manuell setzen musste lag daran, dass aus irgendeinem Grund die ‚!include_try .. protocols/*‘ Zeile in meiner dovecot.conf gefehlt hatte.

        Funktioniert also auch unter Debian ohne Probleme. :)

  • Hi Thomas,

    „das bedeutet, dass die Rewrites auf deinem Server nicht funktionieren.“

    eine idee wie ich da ändern kann ?

    Viele Grüße
    Frank

  • Also „sudo a2enmod rewrite“ war ausgeführt

  • Hallo Thomas,

    also die rewrites waren aktiviert. Ich habe letzlich heute Nacht den Server mal neu aufgesetzt. Nun läuft alles soweit. Ich habe nun noch ein Problem. ich kann auf dem Imap-Konto, mit einem Client (Roundcube oder Thunderbird), keine Unterordner anlegen. Hast du eine Idee wie ich das ändern kann?

    Nochmals vielen Dank für deine Unterstüzung

    Viele Grüße
    Frank

  • Hi,

    danke nochmals für deine Mühe. Frag mich nicht warum, aber es ging nur nicht einen tmp Ordner anzulegen. Hab natürlich erst die ganze Zeit damit getestet. Letztlich verzichte ich nun einfach auf ihn bzw. hab ihn anders benannt. Das Backup mit den ganzen Unterordnern konnte ich problemlos einspielen… bis auf den tmp Ordner. Der wurde auch über das Backup nicht angelegt. Schon seltsam, aber nicht schlimm.

    Viele Grüße
    Frank

  • Vor 3 Wochen habe ich einen super funktionierenden Mail Server dank dieses tollen Tutorials aufgesetzt. Heute musste ich leider feststellen, dass ich mit Thunderbird keine Mails versenden kann. Ich bekomme keinen Zugriff auf den smtp Server. mail.error.log ist leer. Port 25 ist offen auf dem Server. Woran kann dies liegen? Mails kann ich ohne Probleme empfangen und mit Thunderbird abholen

    • Hi,

      leider kann sich in diesen 3 Wochen alles mögliche am Server geändert haben – das macht es schwer, den Fehler zu finden. Sagt das normale mail.log etwas besonderes? Wenn nicht, liegt es evtl an Abwehrmechanismen wie Firewalls, Fail2Ban, …

      Hast du am Server etwas geändert in letzter Zeit?

      LG Thomas

      • Fail2Ban lauscht bei mir nur auf Port 22. Daran deürfte es bestimmt nicht liegen. Ich hab noch dank deines OpenVPN Tutorial einen VPN Server aufgesetzt. Da in der mail.err.log nichts stand hab ich mal mit

        cat /var/mail.log | grep smtp

        gezielt nach smtp gesucht. Da ja da scheinbar der Fehler liegt. Folgendes ist mir ins Auge gestochen

        warning: SASL: Connect to private/auth failed: Connection refused
        fatal: no SASL authentication mechanisms
        warning: process /usr/lib/postfix/smtpd pid 2060 exit status 1
        warning: /usr/lib/postfix/smtpd: bad command startup — throttling

        zuvor hatte ich nen neustart des servers veranlasst und die fatal zeile steht jetzt auch in der mail.err.log

        • Falls es von Interesse ist, ich konnte das Problem lösen. Ich hab auf meinem Server noch zusätzlich den Port 587 frei geschaltet. Mir ist zwar schleierhaft, warum Thunderbird auf einmal diesen Port benutzt und nicht wie vorher die 25

  • Hallo Thomas,

    muss ich irgendetwas beachten, wenn ich ebenfalls POP3 aktivieren beziehungsweise nutzen möchte?
    Anscheinend orientiert sich diese Anleitung ja ausschließlich an IMAP.

    • Hallo Flo,

      aus welchem Grund willst Du denn POP3 verwenden?
      Das Protokoll ist total veraltet, und macht alles wahnsinnig kompliziert.

      Verwende – wenn möglich – IMAP.

  • Hallo Thomas
    Vielen Dank für die Auführliche Anleitung!
    Doch ich kann werder noch Mails empfangen noch welche raussenden.
    Im Tunderbird kann ich die Mail Komten problemlos einfügen und auch unter /var/vmail/Domain/Benutzername erscheinen Sie.
    Ein Mail Versand ist über “echo “Hallo Welt Text” | mailx -s “Hallo Welt” root@domain.de” möglich für interne und externe EMail Adressen aber warum geht es nicht über den Client?
    Lg. Frank

  • Im Abschnitt „Portfreigaben?“ verwechselst Du IMAP und SMTP Port. ;)

  • Hallo Thomas,

    vielen Dank für deine gut erklärte Anleitung. Leider hatte ich jedoch bisher keinen Erfolg damit, obwohl ich nun alles zum zweiten Mal exakt nachvollzogen habe. Kann es an Strato liegen? Bei denen habe ich einen vServer inkl. Domain und wollte dort den Mailserver ganz jungfräulich einrichten. Ich kann mit dem Mailserver weder über Thunderbird, Outlook noch Android Verbindung aufnehmen. In der mail.err-Datei tauchen ständig folgende drei Meldungen auf.

    auth: Fatal: Unknown database driver ‚mysql‘
    master: Error: service(auth): command startup failed, throttling for 16 secs
    fatal: no SASL authentication mechanisms

    Ich habe die Konfigurationsdateien wieder und wieder überprüft, sie stimmen genau mit deinen Vorgaben überein. Jetzt bin ich ziemlich ratlos. Hättest du noch einen Tipp?

    Viele Grüße
    Harald

    • Hi Harald,

      Ursache für deine Probleme ist, dass Dovecot nicht mit der MySQL Datenbank kommunizieren kann, weil die entsprechende Schnittstelle fehlt.

      Nutzt du Ubuntu 14.04? Wahrscheinlich fehlt das Paket, das dir diese Schnittstelle zwischen MySQL und Dovecot bereitstellt.

      LG Thomas

      • Hi Thomas,

        vielen Dank für den Tipp, das hat mich weitergebracht, ich hatte vergessen, dovecot-mysql zu installieren, weil ich dachte, es sei in dovecot-core enthalten. Ja, ich benutze Ubuntu 14.04.
        Jetzt kann ich mich mit Thunderbird ohne Probleme anmelden und auch Mails verschicken. Leider funktioniert der Empfang immer noch nicht. Vielleicht verstehe ich etwas falsch, aber es müsste doch möglich sein, mir direkt Mails an meinen Mailserver senden. Wenn mein Mailserver z.B. meinmailserver.de heißt, sollte doch eine Mail ankommen, die ich mir von einem anderen Account an ich@meinmailserver.de sende (user „ich“ ist natürlich in Datenbank inkl. Passwort und Domain eingetragen). Wenn ich mir eine Mail von einem anderen Account an ich@meinmailserver.de schicke, geht die Mail klaglos raus und es kommt auch keine Fehlermeldung mehr zurück. Bloß die Mail kommt nie an. Oder ist es nur möglich, Mails von anderen Domains zu empfangen, die ich per MX-Records auf meinmailserver.de umleite?

        Viele Grüße
        Harald

        • Hi Thomas, hallo Leute,
          ich habe noch einmal Thomas’ Anleitung von A bis Z mit meiner Installation überprüft, doch zwischenzeitlich wollte auch Thunderbird nicht mehr mit meinem Server kommunizieren, und ich stand wieder mit leeren Händen da. Da habe ich meinen Server (bei Strato) neu installieren lassen und zwar außer Ubuntu 14.04 noch mir Plesk 12. Ich habe eine Stunde mit Plesk herumgespielt, 2, 3 Manuals gelesen, und plötzlich lief mein Mailserver (mit Thunderbird, Outlook und Android!). Jetzt bin ich auf der einen Seite froh, auf der anderen Seite jedoch auch frustriert. Froh natürlich darüber, dass jetzt etwas funktioniert, frustriert darüber, dass die Software es besser hinbekommt als ich/wir, obwohl wir auf alle Stellschrauben feinsten Zugriff haben und eine Software eher einen groben Rundumschlag vollzieht. Hat jemand eine Erklärung dafür, dass es mit Plesk „einfach so geht“ und die Anleitungen im Netz so viele Fußangeln besitzen?

          Viele Grüße
          Harald

  • Ich kann mich einfach nicht mit dem Mailclient aufm Server anmelden, ich habe alles nach meinem System angepasst und die Passwörter sind auch korrekt.

    Dec 14 15:11:32 srv222 dovecot: auth: Fatal: No passdbs specified in configuration file. LOGIN mechanism needs one
    Dec 14 15:11:32 srv222 dovecot: master: Error: service(auth): command startup failed, throttling for 8 secs
    Dec 14 15:11:32 srv222 dovecot: imap-login: Disconnected: Auth process broken (disconnected before greeting, waited 0 secs): user=, rip=92.78.97.41, lip=84.200.206.30, session=
    Dec 14 15:11:40 srv222 dovecot: auth: Fatal: No passdbs specified in configuration file. LOGIN mechanism needs one
    Dec 14 15:11:40 srv222 dovecot: master: Error: service(auth): command startup failed, throttling for 16 secs
    Dec 14 15:11:40 srv222 dovecot: imap-login: Disconnected: Auth process broken (disconnected before greeting, waited 8 secs): user=, rip=92.78.97.41, lip=84.200.206.30, session=

  • Hi, vielen Dank für dieses tolle Tutorial. Leider komme ich an einer Stelle nicht weiter. Folgendes steht in der mail.err

    Couldn’t drop privileges: Unknown UNIX GID group: vmailmail_home = /var/vmail/%d/%n (in mail_privileged_group setting)

    ich vermute mal, das es eher an der Benutzerkonfiguration liegt. In der Datei passwd ist der Nutzer da und ich hab dem Verzeichnis /var/vmail auch die erforderlichen Rechte gegeben. Wo liegt hier der Hase begraben? Ich hab schon ne Stunde Google bemüht, aber noch nichts passendes gefunden.

    Vielen Dank für die Hilfe

  • Hi Tomas,

    erstmal D A N K E für das mega gute Tutorial. Hat bei mir auf all meinen Servern perfekt unter Debian 7 funktioniert (habe allerdings die DotDeb Library sowie die Wheezy-Backports mit einbezogen). Das Einzige was bei mir nun noch nicht so funktioniert wie es soll, ist dein WebMUM-Interface. Dieses funktioniert bei mir unter nginx 1.6.2 nur, wenn die Subdomain auf Port 80 horcht. Aus Sicherheitsgründen möchte ich nun allerdings, dass nur der Hypervisor vom Port 1811 aus Zugriff auf die Subdomain webmum.mydoman.tld hat. Das mit dem Hypervisor habe ich über die iptables geregelt, da dieser einer statische IP hat Die webmum.mydoman.tld.conf sieht so aus, dass eingehende Verbindnungen auf Port 80 zu Hauptdomain weitergeleitet werden und nur Verbindungen auf Port 1811 zum Interface gelenkt werden. Allerdings werden unter Port 1811 keine Grafiken und Styles angezeigt und alles wirkt sehr verbuggt. Die URL Rewrites sind genau wie in deiner ReadMe angelegt.

    Irgendeine Idee, warum es nur unter Port 80 fehlerfrei funktioniert? PhpMyAdmin funktioniert schließlich auch unter Port 1811 mit iptables.

    Grüße,

    Lukas

    • Hi,

      freut mich dass die Anleitung bei dir so toll funktioniert hat! :)
      Was WebMUM betrifft … hast du daran gedacht, in der Konfiguration auch den „FRONTEND_BASE_PATH“ mit einer Portnummer in der URL zu versehen? Nicht, dass der Browser noch über Standardport 80 auf die externen Ressourcen wie CSS und JS zugreift. Ich hab WebMUM noch nie über andere Ports als 80 und 443 laufen lassen, aber auch ein anderer Port sollte ja eigentlich kein Problem sein, wenn auch die URLs entsprechend angepasst werden ;)

      LG Thomas

  • Meinst du das so?:

    define(„FRONTEND_BASE_PATH“, „http://sub.mydomain.tld:1811“);
    define(„SUBDIR“, „“);

  • Hallo und danke nochmal für die Anleitung ich habe noch ein paar Fragen:

    1. Ich habe mir gedanken über den Konstrukt gemacht und es ist mir aufgefallen, dass es theoretisch möglich in der Tabelle aliases die folgende Konstellation zu bekommen:

    +—-+——————–+—————-+
    | id | source | destination |
    +—-+——————–+—————-+
    | 1 | info@beispiel.de | admin@beispiel.de |
    | 2 | mail@beispiel.de | admin@beispiel.de |
    | 3 | webmaster@beispiel.de | admin@beispiel.de |
    +—-+——————–+—————-+

    und in users

    +—-+——————–+—————-+———————–+
    | id | username | domain | password |
    +—-+——————–+—————-+
    | 1 | admin | beispiel.de | dojfödjöldajkäglfdkg#öäkfgdfgfgfdgfgfdg
    | 2 | info | beispiel.de | dojffdgkfdökgpöläkföälgkfdögäfödjöldajkäglfdkg#öäkfgdfgfgfdgfgfdg
    +—-+——————–+—————-+ ———————–+
    D.h. eine EMail-Adresse als ALiases.
    ist es vieleicht, das möglich mit Hilfe von ein paar mysql-befehle dafür zu sorgen, dass sowas nicht vorkommt?

    2. Ist es möglich das System, so zu bauen, dass eine Kopie von den Nachtrichten beispielweise bei gmx oder gmail landet ? eine Art weiterleitung !

    Viele Danke und frohes weihnachten
    Pulsar

  • Hallo,

    ich habe den Server mit kleinen Änderungen (habe anstatt MySQL PostgreSQL verwendet) so aufgesetzt wie in deiner Anleitung. Mein hostname ist ‚vserver‘ und ich habe auch einen MX Record auf ‚vserver‘ erstellt. Habe auch schon meine E-Mail-Adresse in die Datenbank eingetragen und der Abruf funktioniert auch. Als IMAP-Server habe ich ‚vserver.meine-domain.de‘ benutzt und funktioniert auch (da schaut das Mail-Programm scheinbar nach dem MX-Eintrag, den hatte ich vorher noch auf ‚mail‘ gehabt, da funktionierte dann auch nur ‚mail.meine-domain.de‘). Als SMTP-Server habe ich zunächst auch ‚vserver.meine-domain.de‘ benutzt, dann meckert aber mein Mail-Programm und versendet die E-Mail erst gar nicht. Nur wenn ich den Hostnamen weglasse, also ‚meine-domain.de‘ eintrage, dann funktioniert auch der E-Mail-Versand. Ist das normal/gewollt, kann man das irgendwo einstellen?

    VG,
    David

    • Also zu meinem vormalig geschilderten Problem: es lag lediglich daran, dass nach deiner Anleitung in Postfix das snakeoil Zertifikat verwendet wird und Dovecot selbst ein anderes Zertifikat (dovecot.pem) verwendet und mein Mail-Client damit nicht zurecht kam. Vielleicht kann man die Anleitung noch so anpassen, dass beide das dovecot-Zertifikat verwenden?
      Habe mittlerweile ein Zertifikat von StartSSL und damit funktioniert auch jetzt alles super.
      Eine Frage zu der Alias-Tabelle. Habe ein Alias auf meine Hauptemail erstellt (von info@meinedomain.de auf kontakt@meindomein.de). Bei dem Versuch, eine Mail an die info-Adresse zu schicken, schickt mein Server die Rückantwort, dass der Nutzer nicht in der virtual Mailbox Tabelle gefunden wurde. Muss man den Alias auch noch in der users-Tabelle erstellen?

      VG

  • Hallo Thomas,
    erstmal vielen Dank für die tolle Arbeit und Dein Engagement. :) Ich habe auf meinem lokalen Server mit Ubuntu 14.04 Devecot und Postfix nach Deiner super gut beschriebenen Anleitung aufgesetzt. Mit Thunderbird kann ich mich mit einem Benutzernamen einwählen. Das Konto wird problemlos mit Serverzigriff über ip-Adresse angelegt. Ich kann auch an meinen eigenen Namen Mails versenden. Die werden aber nicht im vmail Verzeichnis als empfangen gespeichert, sondern unter /var/mail/ als Datei mit dem Benutzernamen. Damit kommen sie nicht in Thunderbrid an.
    Die mail.log bringt keinen Fehler oder Warnungen. Der Server hat keine anderen zusätzlichen Pakete wie z.B. Apache oder dns installiert. Wo habe ich mich wohl verhauen? Warum legt er den Maileingang in die Datei unter /mail/ und nicht in den Verzeichnisbaum unter /vmail/?
    Viele Grüße

    • Nochmal hallo,
      also ein Mailserver ohne DNS Server ist bäh. Scheint am fehlenden MX Record zu liegen, vermutlich. Jedenfalls wieder was gelernt. ;)

    • Das Problem mit dem /var/mail hatte ich auch. Der Fehler war dass ich versehentlich in der /etc/postfix/main.cf meine domain auch in mydestination eingetragen hatte. Offenbar liefert postfix die mails dann direkt aus un ignoriert die virtual-lmtp-Sachen.

  • Hallo Thomas,

    kann mich meinen Vorrednern nur anschließen – Supersache das Ganze!

    Aber hier der Haken – ich bekomme folgende Fehlermeldung, wenn ich versuche, das Konto in Thunderbird hinzuzufügen:

    dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>,.... Daraufhin habe ich auth_debug = yes und auth_debug_passwords = yes gesetzt.

    Ich habe jetzt beim base_dir = /var/run/dovecot/ den letzten / entfernt. Ich hatte in der Debug-Ausgabe immer stehen: dovecot: auth: Debug: Read auth token secret from /var/run/dovecot//auth-token-secret.dat, jetzt nur noch dovecot: auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat.

    Dann habe ich festgestellt, dass meine Dovecot-Installation die Zertifikate nicht unter /etc/dovecot/ ablegt, sondern unter /etc/ssl/certs bzw. /etc/ssl/private. Auch das habe ich geändert.

    Natürlich immer dovecot neu gestartet, aber es bleibt bei der Meldung im Thunderbird, dass „Benutzername oder Passwort ungültig“ sind und in syslog und mail.log sehe ich nur:
    Dec 29 10:23:14 xxxxx dovecot: auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
    Dec 29 10:23:14 xxxxx dovecot: auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so
    Dec 29 10:23:14 xxxxx dovecot: auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat
    Dec 29 10:23:14 xxxxx dovecot: auth: Debug: auth client connected (pid=781)
    Dec 29 10:23:14 xxxxx dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=xxx.xxx.xxx.xxx, lip=xxx.xxx.xxx.xxx, session=<diuLbFcLIABXnkrr>
    Dec 29 10:23:14 xxxxx dovecot: auth: Debug: auth client connected (pid=789)
    Dec 29 10:23:14 xxxxx dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=87.158.74.235, lip=188.138.116.131, session=<EG+MbFcLIQBXnkrr>

    Hast Du da eine Idee? Im Dovecot-Wiki habe ich dazu nur gefunden, dass man das „auth_debug_passwords = yes“ setzen soll.

    Danke für Deine Hilfe im Voraus!

    • Also mit Squirrelmail kann ich mich anmelden, scheint also ein Problem in Thunderbird zu sein. :(
      Aber: Squirrelmail legt immer unter /var/vmail/ eine neue leere Mailbox an mit dem Schema username@domain.tld. Das hilft mir auch nicht weiter.

  • Hallo Thomas,
    ersteinmal vielen Dank für diese tolle, gut verständliche Anleitung, hat bei mir auf Anhieb alles geklappt :-).

    Hast du auch Erfahrung mit Mailing Listen (etwa via mailman)? Ich bin da momentan etwas am rumexperimentieren, allerdings nicht wirklich erfolgreich. (Subscriben etc funktioniert, allerdings das Senden an test@$randomdomain.$randomTLD schlägt fehl, da test nicht zugeordnet werden kann im Mailserver. )
    Ich habe diverse Anleitungen ausprobiert, meistens ohne Erfolg, teilweise haben die Konfigurationen sogar den gesamten Mailempfang lahm gelegt.

    Vielen Dank im Voraus.
    Max

  • Vielen Dank für diese sehr ausführliche Anleitung, und auch für die ausschmückenden Erklärungen. Leider will es unter Debian 7.7 nicht funktionieren. Ich bin noch am Fehlersuchen, falls ich was finde werde ich es hier kund tun. Das merkwürdige ist, dass alle logs (mail.log, mail.err, mail.info) komplett leer sind. Auch scheint bei mir der smtpd nicht zu laufen. Auf meinem Hauptserver, der noch mit Unixbenutzern und nicht mit der Datenbank läuft ist dies der einzige Unterschied in den laufenden Programmen. Eon postfix start allerdings sagt mir, dass postfix schon läuft. Falls jemand eine Idee hat wo mein Fehler liegen könnte würde ich mich über einen Hinweis freuen, ansonsten suche ich solange mal weiter.

  • moin Thomas,

    eigentlich sehr verständliche Anleitung… habe trotzdem ein zwei Fragen.
    1. bei mir werden unter var/vmail keine postfächer generiert, auch nicht in var/mail.

    mail_home = /var/vmail/%d/%n
    mail_location = maildir:~/mail:LAYOUT=fs
    mail_uid = vmail
    mail_gid = vmail
    mail_privileged_group = vmail
    # das ist eingetragen scheint aber nicht zu funktionieren#
    2. muss ich für jeden email-nutzer händisch im mysql diesen Befehl mit dem ewig langen key eingeben?
    wäre bei tausend Nutzern echt mühsehlig.

    gruss Frank

    • Hi Frnak,

      die Postfächer werden erst angelegt, wenn man versucht hat, mit einem E-Mail Client auf ein Konto zuzugreifen (nachdem es in der DB schon angelegt wurde).
      Ansonsten könntest du mal die Verzeichnisrechte kontrollieren. Vmail muss Schreizugriff auf /var/vmail haben.

      Für eine bequemere Administration habe ich ein Webinterface entwickelt: https://github.com/ThomasLeister/webmum

      LG Thomas

      • Danke für die schnelle Antwort Thomas,

        auch nach der fünften Überprüfung werden die Postfächer im /home/Nutzer/mail/ angelegt?
        =================================================================================


        =================================================================================

        Mails senden Funktioniert, das Abholen jedoch nicht…. ohne Fehelermeldung.
        event. weisst du woran es liegt…berechtigung hab ich überprüft…alles richtig
        oder du kannst mir erklären wie ich die konfi gestallten muss um die Postfächer im /home/Nutzer/mail/ belassen kann.

        Gruss Frank

        • achso ja ich benutze das ubuntu 14.04
          die postfächer werden von dovecot im /home/nutzer/mail/ angelegt
          hm keine erklärung ich habe

  • mail_home = /var/vmail/%d/%n

    =============================================
    mail_home = /var/vmail/%d/%n <—– diese zeile mit %d/%n ( bedeutet wohl %d wie domain und %n für nutzer

    http://www.zimagez.com/zimage/screenshot-15012015-185233.php

  • Moin Thomas,

    Super Anleitung und vielen Dank für die Mühe die du dir damit gegeben hast. Ich habe heute damit LAMP, Postfix, Dovecot und Roundcube installiert. Leider bekomme ich keine Mails versendet. Weder intern noch extern. im Mail.log erscheint folgende Fehlermeldung

    Jan 21 17:19:30 webmail postfix/submission/smtpd[2688]: NOQUEUE: reject: RCPT from unknown[212.48.110.50]: 451 4.3.5 Server configuration error; from= to= $

    So wie ich es sehe akzeptiert postfix die Absender-IP(das ist die feste öffentliche IP) nicht als autorisiert/angemeldet. Ich denke das hängt mit der sasl-autorisierung zusammen, kann aber nicht erkennen wo ich da etwas falsch gemacht habe. Hast du da einen Tipp für mich?

    Grüße

    Andreas

  • Klasse Anleitung. Ganz hervorragend. Hat fast auf Anhieb geklappt.

  • Hallo Thomas
    Vielen Dank für das Tolle Tutorial!
    Leider kann ich aber keine Mails versenden!
    In den Mail Error Logs Steht Folgendes:
    Jan 31 21:35:23 mailserver postfix/submission/smtpd[37729]: error: open /etc/postfix/virtual/mysql-maps.cf: No such file or directory
    Jan 31 21:35:23 mailserver postfix/submission/smtpd[37729]: error: open /etc/postfix/virtual/mysql-aliases.cf: No such file or directory
    Die Dateien sind aber vorhanden! Liegt dass an den Berechtigungen?
    Mit Freundlichen Grüssen
    Ruben

  • Bei mir kann ich leider auch keine emails empfangen aber die beschreibung hat sonst gut geklapt die fehlermeldung lautet:

    Feb 1 16:57:29 vserver3010 dovecot: lmtp(12462, maik@tt-osl-pokal.de): Error: open(/var/mail/maik@tt-osl-pokal.de) failed: Permission denied (euid=1008(vmail) egid=1009(vmail) missing +w perm: /var/mail, we’re not in group 8(mail), dir owned by 0:8 mode=0775)
    Feb 1 16:57:29 vserver3010 dovecot: lmtp(12462, maik@tt-osl-pokal.de): Error: Opening INBOX failed: Mailbox doesn’t exist: INBOX
    Feb 1 16:57:29 vserver3010 dovecot: lmtp(12462, maik@tt-osl-pokal.de): Error: BUG: Saving failed to unknown storage

  • Habe alles nach deiner Anleitung aufgesetzt, kann Postfix aber nicht starten.

    postfix/postfix-script: fatal: mail system startup failed

  • Hallo,
    wollte nur schnell mal Danke sagen! Super Tutorial für das doch recht aufwendige aufsetzen eines Mailservers.
    Hat bei mir nach ein, zwei Fehlern dann auch einwandfrei funktioniert!
    Habe seit eben auch Webmum am Laufen zur Mail Userverwaltung.

    Ist es Dir Recht wenn ich eventuell in einem Blogeintrag mal auf das Tutorial und auch auf webmum verlinke?

    Viele Grüße
    Stefan

  • Bei mir geht zwar das senden intern und auch nach draußen aber wann ich emails umleite die nach aussen gehen sollten kommt ein fehler.

    Kann daran liegen da ich es vorher schon einige zeit laufen gehabt habe.
    Nur wie bekomme ich alles sauber runter ohne etwas falsches zu löschen
    Wann ich per hand configs lösche erstellt der die nicht mehr.

    fehler

    Feb 4 11:46:48 Debian-77-wheezy-64-minimal postfix/smtpd[8553]: fatal: open dictionary: expecting „type:name“ form instead of „=“
    Feb 4 11:46:49 Debian-77-wheezy-64-minimal postfix/master[8445]: warning: process /usr/lib/postfix/smtpd pid 8553 exit status 1

    Feb 4 12:34:54 Debian-77-wheezy-64-minimal postfix/smtpd[9218]: fatal: open dictionary: expecting „type:name“ form instead of „=“
    Feb 4 12:34:54 Debian-77-wheezy-64-minimal postfix/submission/smtpd[9219]: fatal: open dictionary: expecting „type:name“ form instead of „=“

    oder was habe ich falsch gemacht

    von aussen mit Thunderbird komme ich auch nicht drauf

    mfg Dominik

    • Das eine problem habe ich jetzt

      nur über email programme komme ich nicht drauf sagt immer password oder user falsch wann ich denn von der datenbank nehme

      wie kann ich das beheben oder hab ich das passwort falsch eingetragen

  • Hi Thomas,
    vielen Dank für die super Anleitung. Hatte eigentlich alles prima funktioniert. Konnte Mails empfangen und senden. Auch WebMUM funktioniert d.h. es können User angelegt werden und PW erstellt/geändert werden.

    Dann habe ich nach Deine Anleitungen Amvis, Spamassassin, ClamAV, Sieve installiert. Testmails haben auch noch gefunzt.

    Nur jetzt auf einmal kann ich mich mit keinem der Accounts mehr bei Thunderbird anmelden. Thunderbird sagt „Verbindung wurde verweigert.“

    mail.err sagt folgendes:
    Feb 4 16:36:17 v22015012588922397 postfix/smtpd[2392]: fatal: no SASL authentication mechanisms

    Hast Du vielleicht nen Tipp für mich?
    Vielen Dank. :)

  • Hi,

    Du scheinst Dich ja sehr gut mit der ganzen „Mailserver-Thematik“ auszukennen, und hoffe, dass Du mir vielleicht bei einer Problemstellung unter die Arme greifen kannst.

    Und zwar müsste ich, wenn eine mail von einer bestimmten Mailadresse per SMTP verschickt wird eine Kopie auf dem Server (oder als CC) erhalten bleiben. Problem hierbei ist, daß der Mailserver benutzt wird mit den entsprechenden SMTP Daten, die ich zur Verfügung stelle. Es geht wirklich nur um das versenden. Einen Empfangsfilter bzw. einen Forward bei empfangene Mails einzurichten auf die Mailadresse geht zwar, aber da ist dann ja die Richtung falschrum. Ich brauche sowas beim Versand.

    Ich hoffe, Du kannst mir hierbei direkt helfen, oder mir eine Laufrichtung geben, wie man sowas realisieren kann.

    Und um es gleich vorweg zu nehmen:
    Es geht nicht ums ausspionieren von Mails, da über die Mailadresse immer die gleiche Mail versendet wird, wobei lediglich der Empfänger variiert.

    Danke im voraus.

  • Hallo, vielen Dank für die super Anleitung. Ich habe es mit einem Debian System installiert, und es funktioniert soweit alles einwandfrei.
    Was ich fragen wollte: Beim Empfänger im Header der Nachricht, steht „Absender Host: vps.localdomain“
    Hier sollte aber doch „Absender Host: meinedomain.de“ stehen.
    Also ich versende ganz normal via Internet vom admin@mydomain.de an name@google.com und nicht local.
    Habe schon in der main.cf gesucht, aber bis jetzt nichts passendes gefunden wo ich dies ändern kann.
    Für einen Tipp wäre ich sehr dankbar, grüsse :-)

  • Hallo
    Ich habe ein gewaltiges Problem, ich kann keine mails mehr versenden noch empfangen.
    Server Ubuntu 12.04.3 LTS, 12.0.18 Update #34, zuletzt aktualisiert: 10. Febr. 2015 04:08:20

    //# See /usr/share/postfix/main.cf.dist for a commented, more complete version

    # Debian specific: Specifying a file name will cause the first
    # line of that file to be used as the name. The Debian default
    # is /etc/mailname.
    #myorigin = /etc/mailname

    smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
    biff = no

    # appending .domain is the MUA’s job.
    append_dot_mydomain = no

    # Uncomment the next line to generate „delayed mail“ warnings
    #delay_warning_time = 4h

    readme_directory = no

    # TLS parameters
    smtpd_tls_cert_file = /etc/postfix/postfix_default.pem
    smtpd_tls_key_file = $smtpd_tls_cert_file
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.

    myhostname = h2210451.stratoserver.net
    alias_maps = hash:/etc/aliases, hash:/var/spool/postfix/plesk/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = localhost.stratoserver.net, localhost, localhost.localdomain
    relayhost =
    mynetworks = 127.0.0.0/8 [::1]/128 85.214.225.58/32
    mailbox_command = procmail -a „$EXTENSION“
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    inet_protocols = all
    virtual_mailbox_domains = $virtual_mailbox_maps, hash:/var/spool/postfix/plesk/virtual_domains
    virtual_alias_maps = $virtual_maps, hash:/var/spool/postfix/plesk/virtual
    virtual_mailbox_maps = , hash:/var/spool/postfix/plesk/vmailbox
    transport_maps = , hash:/var/spool/postfix/plesk/transport
    smtpd_tls_security_level = may
    smtp_tls_security_level = may
    smtp_use_tls = no
    smtpd_timeout = 3600s
    smtpd_proxy_timeout = 3600s
    disable_vrfy_command = yes
    smtpd_sender_restrictions = check_sender_access hash:/var/spool/postfix/plesk/blacklists, permit_sasl_authenticated
    smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated
    smtp_send_xforward_command = yes
    smtpd_authorized_xforward_hosts = 127.0.0.0/8 [::1]/128
    smtpd_sasl_auth_enable = yes
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    virtual_mailbox_base = /var/qmail/mailnames
    virtual_uid_maps = static:30
    virtual_gid_maps = static:31
    smtpd_milters = , inet:127.0.0.1:12768
    non_smtpd_milters =
    sender_dependent_default_transport_maps = hash:/var/spool/postfix/plesk/sdd_transport_maps
    virtual_transport = plesk_virtual
    plesk_virtual_destination_recipient_limit = 1
    mailman_destination_recipient_limit = 1
    virtual_mailbox_limit = 0
    message_size_limit = 1024000000
    //
    leider habe ich keine Ahnung wo der Fehler liegt.

    Gruß
    Rolf

    • Hi Rolf,
      so wie’s aussieht hast du `mydestination = localhost.stratoserver.net, localhost, localhost.localdomain` gesetzt.
      `mydestination = ` muss aber da stehen ;) Probier das mal.

      VG,
      Jonathan

  • Hi,
    seit meinem Update auf Postfix 2.11 kommen alle eMails in einer Datei im ordner /etc/mail an und werden nicht per per dovecot in die Ordner einsortiert. Weißt du woran das liegt?

  • Hallo,

    erstmal vielen Dank für die Anleitung.

    Ich habe leider das Problem, dass ich Mails verschicken kann, aber keine empfange. Die empfangenen Mails werden in /var/mail als Textdatei gespeichert und nicht wie gedacht als Ordnerstruktur in /var/vmail.
    Bin jetzt stundenlang alles mehrfach durchgegangen und habe im Internet nach einer Lösung gesucht, aber ich finde nichts. Die Logs zeigen auch nichts interessantes.

    Hast du vielleicht eine Idee, wo ich ansetzen kann?
    Vielen Dank im voraus.

  • Hallo,

    von mir auch ein großes Dankeschön für das Howto.

    Bei mir unter Ubuntu 14.04 läuft es auch beinahe. Lediglich der socket für lmtp wird nicht angelegt. Dovecot schweigt sich darüber aus, aber der Mailempfang klappt nicht: (connect to sunkist.localdomain[private/dovecot-lmtp]: No such file or directory)

    Die Idee mit dem „protocols“ Eintrag macht keine Änderung, die Protokolle werden in der dovecot.conf sowieso inkludiert.

    doveconf liefert auch etwas zu lmtp zurück:

    service lmtp {
    chroot =
    client_limit = 1
    drop_priv_before_exec = no
    executable = lmtp
    extra_groups =
    group =
    idle_kill = 0
    privileged_group =
    process_limit = 0
    process_min_avail = 0
    protocol = lmtp
    service_count = 0
    type =
    unix_listener lmtp {
    group = postfix
    mode = 0660
    user = postfix
    }
    user = vmail
    vsz_limit = 18446744073709551615 B
    }

    ich bin mit meinem Latein am Ende wo ich noch nachsehen könnte. Der auth-Socket wird richtig angelegt…

    vielen Dank für jeden Hinweis

    • Ok… der Socket sollte in der Dovecot config auch richtig heißen… In der /etc/dovecot/conf.d/10-master.conf ist eine lmtp-Config drinnen die man am besten komplett rauslöscht und durch den Block von hier ersetzt.

      Läuft jetzt.

  • Hi,

    super Tutorial! Endlich mal eines das auf Anhieb funktionierte!!
    Hast Du vielleicht noch eine Idee, wie man da noch den Teil mit einer Urlaubs/Abwesenheitsnotiz lösen könnte? Daaanke!

    LG Joris

    • Hi,

      so einen Abwesenheitsnotiz lässt sich auch einrichten. Einfach einen Filter erstellen, der bei jeder eingehenden E-Mail aktiv wird und dann eine Antwort-E-Mail schickt. Hab das schon mal ausprobiert. Die Einstellungen dazu kann ich dir aus dem Kopf heraus leider nicht sagen, aber ich denke du findest die nötigen Einstellungen dazu selbst :)

      LG Thomas

      • Hallo Thomas,
        vielleicht hast Du eine Lösung?

        Für meinen Urlaub von Weihnachten bis Mitte Januar habe ich die Abwesehenheitsnotiz eingeschaltet. Dies ging zu dem Zeitpunkt unter „Einstellungen“ –> „Abwesenheit“. Nun wollte ich die Abwesenheitsnotiz wieder ausschalten, aber unter „Einstellungen“ gibt es keine Rubrik „Abwesenheit“ mehr.

        Wie kann ich die Abwesenheitsnotiz wieder ausschalten?

        MfG Mine

  • Hallo Thomas,

    eine wirklich großartige Anleitung! Alles funktioniert auf Anhieb. Es ist sehr ausführlich und vor allem verständlich erklärt. Daumen hoch!

    Ich habe aber noch eine Frage zu Deinem Setup, wenn ich es um fetchmail erweitern möchte:

    Wie kann ich die per fetchmail abgeholte Mails an die dovecot-User zustellen, die ja keine Systemuser sind, sondern nur in der Datenbank existieren?
    Bei fetchmail gibt es ja die Option „mda“. Allerdings habe ich bisher keine brauchbare Anleitung gefunden, wir ich fetchmail den Mail-User hier auf dem dovecot-Server mitteilen kann.
    Hast Du eine mögliche Variante, wie ich die Mails (gern auch erst, nachdem sie auf Viren und Spam gecheckt wurden) in den jeweiligen Ordner des Users im MAILDIR bringen kann?

    Gruß Jörg.

  • Hallo Thomas,
    Super Anleitung! nur mit dem webMUM habe ich so meine Probleme. Ich kann mich einfach nicht einloggen. Es wird jedesmal die Meldung „Sorry, couldn’t log you in :(“ ausgegeben. Die E-Mail-Adresse welche ich als Admin-Email hinterlegt habe kann ich ohne Probleme mit Thunderbird abrufen. Kannst du mir da weiterhelfen?

    Gruß Oliver

  • Hallo Thomas!
    Der Server läuft bei mir seit rund 7 Monaten
    einwandfrei! Gibt es eine Möglichkeit, externe POP3 oder IMAP-Postfächer abzurufen (für Mail-Dienste, die keine Weiterleitung unterstützen)? Kann ich das irgendwie erweitern?
    Andreas

  • Ich bin kürzlich mit meinen Projekten auf einen neuen Server umgezogen. Den alten Mail-Server habe ich nach Deiner Anleitung installiert. Mit meinen Sicherungsdateien hat nun die Einrichtung des neuen Mailservers keine 5 Minuten gedauert!
    Ich wollte mich an dieser Stelle nur noch einmal bedanken: D A N K E

  • Frage bin mit neustem Minimal Bullid von Debian und meine Mails kommen nicht raus und mailx Geht garnicht ;S

  • hallo habe das Problem das ich bei Roundcube keine Mails versenden kann

    (5.7.0 Must issue a STARTTLS command first).

    und ich mit dem Client nicht anmelden am pc

    Senden empfang funktioniert

  • Kann mir jemand sagen warum ich die Tabelle nicht anlegen kann?

    mysql> create table domains (id INT UNSIGNED AUTO_INCREMENT NOT NULL, domain VARCHAR(128) NOT NULL, UNIQUE (domain));
    ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

  • Hallo Thomas,

    erstmal danke für die Tolle Anleitung.

    Soweit hat bei mir alles funktioniert, nur leider kann ich mich via Thunderbird nicht mit dem Server verbinden. Die entsprechenden Ports sind natürlich freigegeben. Thunderbird sagt „Benutzername oder Passwort ungültig“.

    Ich habe den Benutzer nochmals neu angelegt, ein neues passwort gehasht vergeben, nur leider bleibt der Fehler vorhanden.

    cat /var/log/mail.log liefert mir folgede errormeldung:

    Mar 25 20:54:12 beispiel dovecot: imap-login: Disconnected (auth failed, 3 attempts in 6 secs): user=, method=PLAIN, rip=SOMEIPADDRESS, lip=SOMEIPADDRESS, TLS, session=

    Habe ich das richtig verstanden, wenn ich einen neuen Benutzer anlegen möchte nutze ich folgende mysql Anweisung:

    insert into users (username, domain, password) values (‚bent‘, ‚beispiel.com‘, ‚HASHCODE‘);

    um nun ein alias anzulegen nutze ich:

    insert into aliases (source, destination) values (‚bent.name@beispiel.com‘, ‚bent@beispiel.com‘);

    Stimmt das so? Oder verwechsel ich hier etwas, muss der Benutzername derselbe sein wie das alias?

    Mit freundlichen Grüßen,

    Bent

  • Sorry, aber ich muss hier mal etwas Kritik üben. Ich verstehe nicht den Sinn davon, mir per Copy and Paste extrem aufwendig Datenbanken und Konfigurationen zusammenzuschustern, nur weil ich einen Mail-Server haben will. Die meisten Dinge werden hier überhaupt nicht näher erläutert. Ich lerne also praktisch kaum was. Im besten Falle mache ich beim Befolgen deiner Anleitung keinen Fehler und habe mit sehr viel Aufwand einen funktionierenden Mail-Server zum Laufen gebracht, ohne irgendetwas verstanden zu haben. Mache ich jedoch einen Flüchtigkeitsfehler, funktioniert er nicht und ich fange an, verzweifelt irgendwelche logs hier zu posten.
    Aber gut, wer darauf abfährt, soll es gerne so machen. Meine eigentliche Kritik geht daher gegen deine einleitenden Sätze, in denen du behauptest, dass deine Anleitung einen „relativ einfach“en Weg beschreiben würde, und überhaupt keine Alternativen nennst. Wenn du fair wärest, würdest du zu Beginn zunächst erwähnen, dass man mit einem simplen „apt-get install dovecot-postfix“, ohne einen weiteren Finger krumm machen zu müssen, prinzipiell genau das gleiche Ergebnis erhält. Und wenn du willst, dass die Leute wirklich was lernen, darfst du nicht die ganze Zeit nur zum Copy and Paste auffordern, sondern musst die Code-Zeilen jeweils auch erklären und zum Nachdenken anregen.
    Wenn mich jemand fragt, wie man Fotos bearbeitet, fange ich auch nicht an, dem- bzw. derjenigen Code-Schnipsel von GIMP zu schicken. Es ist prinzipiell sehr ehrenwert, Menschen zum Lernen neuer Dinge zu bringen. Es muss aber fair ablaufen, also klar gesagt werden, wenn der Pfad der pragmatischen Problemlösung verlassen wird.

  • moin.
    auch von mir ein herzliches Dankeschön. ich habe zwar ein bisschen gebraucht, aber jetzt funktionier der server fast komplett. Bin schon sehr erleichtert.
    nur das mit den Alias funktioniert nicht.
    ich habe alles nochmal mehrfach kontrolliert. habe nen befehl gefunden, mit dem man postfix testen kann, ob es den alias korrekt auflöst:
    postmap -q alias@domain.de mysql:/etc/postfix/virtual/mysql-aliases.cf

    und dieser befehl gibt mir die korrekte adresse meines eigentlichen e-mail-kontos wieder. also scheint das ja schon an sich zu funktionieren. dennoch bekomme ich eine fehler-mail zurück, wenn ich versuche an den alias eine mail zu schreiben:

    „alias@domain.de“:
    SMTP error from remote server after RCPT command:
    host: foo.bar.de
    5.2.0 No such mailbox

    kannst du dir das erklären?

  • Hallo Thomas,

    ich habe ein für mich unerklärliches Problem bei dem Versenden der Testmail.

    1. /var/mail ist bei mir leer Wenn ich eine lokale mail mit dem von dir aufgezeigten
    echo „Hallo Welt Text“ | mailx -s „Hallo Welt“ root@ubuntu-server sende erscheint bei mir eben nichts in diesem mail ordner. auch vmail ist leer. habe ich da irgend etwas übersehen oder falsch eingerichtet?

    2. Als alternative habe ich es mit einigen offiziellen Adressen versucht. Die eine Email an meinen Account bei web.de kam erfolgreich an. Die zweite an meinen Account bei live.de jedoch nicht. Gibt es irgend etwas in Bezug auf solche Hotmail-Emailadressen zu beachten oder konfigurieren?

    Ich hoffe mir kann jemand weiterhelfen.

    • Hi Florian,

      warum bei dir keine E-Mail ankommt, kann ich mir nicht erklären. Löst „ubuntu-server“ auf deinen eigenen Server auf? Ansonsten lohnt sich immer ein Blick in die Logfiles. Aber dass deine E-Mail bei web.de ankommt, ist schon mal ein gutes Zeichen.

      Deie E-Mail kommt bei live.de bzw Hotmail nicht an, weil Microsoft seinem Dasein als Saftladen alle Ehre macht und gleich mal ganze große IP-Adressbereiche für seine Mailserver sperrt. Wenn du E-Mails an M$ Server schicken willst, musst du beim technischen Support einen Antrag auf eine vorübergehende Herausnahme deiner Server-IP aus der Sperre stellen.

      LG Thomas

  • Hallo,

    erstmal ein großes Lob für das tolle Tutorial, gefällt mir echt!

    Ich bin mit allem soweit fertig, beim Senden einer Mail an einen bestimmten User erhalte ich folgende Meldung zurück: User unknown in local recipient table. Die Datenbank habe ich aber korrekt eingestellt.

    Mit freundlichen Grüßen
    Daniel Koch

  • Hallo zusammen,

    ich habe ein Problem, bei dem ich mir nicht ganz sicher bin, wo ich anfangen soll zu suchen.

    Wenn ich ein Passwort wie: 123456strenggeheim
    setze, kann ich mich einloggen.
    sobald ein Zeichen wie @, !, ö, ä oder in Richtung dabei ist, kann ich mich nicht mehr einloggen.

    Die Log bringt mich nicht weiter:
    Apr 18 14:53:57 hostname dovecot: auth-worker(28273): mysql(127.0.0.1): Connected to database vmail
    Apr 18 14:54:11 hostname dovecot: imap-login: Disconnected (auth failed, 3 attempts in 14 secs): user=, method=PLAIN, rip=ip, lip=ip, TLS, session=

    habe die Angaben etwas neutralisiert.

    Bei Ubuntuusers habe ich einen Hinweis gefunden:
    password_query = SELECT NULL AS password, ‚Y‘ as nopassword, username AS user FROM mailbox WHERE username = ‚%u‘ AND ( password = MD5(‚%w‘) OR password = MD5(CONVERT(‚%w‘ USING latin1)) OR password = MD5(CONVERT(_latin1’%w‘ USING utf8)))

    Da meine mysql Kenntnisse beschränkt sind, verstehe ich die Zeile nicht zu 100%.
    Bin mir auch nicht sicher ob das ein Lösungsweg ist.

    Dennoch habe ich „versucht“ die Zeile anzupassen:

    SELECT password AS password, ‚Y‘ as nopassword, username AS user FROM users WHERE username = ‚%u‘ AND ( password = MD5(‚%w‘) OR password = MD5(CONVERT(‚%w‘ USING latin1)) OR password = MD5(CONVERT(_latin1’%w‘ USING utf8)))

    Kann mir meinem Problem jemand helfen?

  • Hallo,

    Ich habe die Anleitung befolgt und es funktioniert auch zum großen Teil.
    Ich habe nur folgendes Problem:
    Ich kann E-Mails vom Server verschicken und kann auch intern Mails schicken, aber E-Mails von außen kommen nicht an.
    Auch hatte ich versucht RoundCube zu installieren, aber da bekam ich Fehler mit der IMAP und SMTP-Verbindung.
    Wenn ich z.B. bei der Installation von RoundCube die Verbindung teste bekomme ich „Login failed for root from XX.XXX.XX.XX. Empty startup greeting (localhost:143)“ als Fehlermeldung.

    Jemand eine Idee woran es liegen könnte?

    • Hat sich erledigt. Hab den Server neu aufgesetzt und das Tutorial befolgt. Klappt alles :)
      Hatte anscheinend Linux 13 und nicht 14.04 drauf.

      Tutorial ist sehr gut gemacht und gut strukturiert.

      Viele Grüße,
      Alex

  • Hallo,

    auch von mir vielen Dank für die super Anleitung.

    Ich bekomme bei der Anmeldung im Thunderbird immer wieder eine Fehlermeldung.

    Auszug /var/log/mail.log

    Apr 21 03:48:51 ms203 dovecot: imap(user@domain.de): Error: open(/var/mail/user@domain.de) failed: Permission denied (euid=1009(vmail) egid=1009(vmail) missing +w perm: /var/mail, we’re not in group 8(mail), dir owned by 0:8 mode=0775)
    Apr 21 03:48:51 ms203 dovecot: imap(user@domain.de): Error: Failed to autocreate mailbox INBOX: Internal error occurred. Refer to server log for more information. [2015-04-21 03:48:51]

    Find das hier was komisch habe in der Config eigentlich vmail angeben aber er will immer in das Verzeichnis (/var/mail/user@domain.de)

    Laut Anleitung wird doch die Struktur in der 10-mail.conf festgelegt oder ?

    Inhalt meiner 10-mail.conf

    http://pastebin.com/wv2t4bmb

  • Wer Probleme mit dem Empfang von E-Mails von „aussen“ hat (also z.b. gmx.de), der sollte in der /etc/postfix/master.cf folgende Zeile „einkommentieren“ smtp inet n – n – – smtpd.

    Ansonsten großartiges Tutorial.

    Viele Grüße,
    Michael

  • Hey,

    danke für die gute Anleitung – ich denke es sollten aber noch ein paar Sicherheitsfeatures beachtet werden.
    Wieso läuft z.B. der mysql auf * ? Damit ist er auch über inet zu erreichen.

    Der User vmail sollte auch /bin/nologin bekommen als Shell.

    Just my 2cents

  • Hast du noch eine anleitung wie man hier einen autoreply einrichtet? für out of office?

  • Hallo Thomas,
    echt super Anleitung! Die einzige gute, die ich gefunden habe.
    Doch auch ich habe ein Problem (ich weiß, dass es schon mehrfach genannt wurde, aber nicht richtig geklärt):

    Ich kann zwar E-Mails senden, sie kommen auch im anderen Postfach an (bei mir web.de), jedoch keine empfangen die von extern kommen.
    Das heißt schreibe ich an mich selber, kommt die Mail bei mir an,
    schreibe ich aber von meinem web.de Account an die Mail-Adresse geschieht nichts (keine Fehlermeldung, dass die Nachrichten nicht zugestellt werden konnte)

    Nach einem komplettem Neuanfang war auch keine Änderung.

    Jetzt habe ich einfach mal dovecot und postfix gekillt also service dovecot (bzw. postfix) stop und erneut eine Mail von web.de geschickt: keine Fehlermeldung.

    Ich glaube das liegt an meiner DNS-Einstellung:


    Name (Subdomain) | Typ | Priorität | Wert
    | A | 10 | 1.2.3.4
    mail | A | 10 | 1.2.3.4
    | MX | 10 | mail.domain.tld

    Habe ich irgendetwas falsch gemacht?
    PS.: Im E-Mail Err steht nix und im Log finde ich auch nichts brauchbares.

    Vielen Dank,
    Gruß Simon

    • Sry wegen der Formatierung

    • Hi Simon,

      kann gut sein, dass das an fehlerhaften DNS Records liegt. Die DNS Records für E-Mail kannst du z.B. hier checken lassen: http://mxtoolbox.com/
      Wenn du als Ziel eine FQDN nutzen willst, musst du den Domainnamen mit einem Punkt abschließen. In deinem Fall müsste dort also stehen: „mail.domain.tld.“

      LG Thomas

      • Hi,
        danke für die schnelle Antwort,
        ich habe jetzt mal den Punkt dahinter gesetzt, aber keine Änderung. Auf der Seite unter ‚Find Problems‘ kommt folgendes raus:

        ERR: http: domain.tld: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. (http://domain.tld)

        ERR: https: domain.tld: The Certificate is invalid

        ERR: SMTP: mail.domain.tld: Failed to Connect

        WARN: spf: domain.tld: No SPF records found

        Also ich benutze momentan für Mail und Webserver ein eigenes Zertifikat, glaube aber nicht, dass es daran liegt. Mit dem ‚Failed to connect‘ meint der wahrscheinlich, dass der unsichere 25er Port (oder?) nicht frei ist. Aber senden kann ich ja, daran liegt das wohl nicht. Das letzte, weiß nicht wofür das gut sein soll.
        Ich beschäftige mich erst seit kurzem mit DNS, kennen mich also noch nicht so wirklich damit aus, Wikipedia ist da aber auch undeutlich.

        Gruß Simon

  • Du musst in der master.conf von postfix drauf achten das in Zeile 12 das smtp nicht auskommentiert ist.

    Teste einfach selber mit „telnet localhost 25“ ob auf dem SMTP Port was lauscht – falls nicht können keine mails von außerhalb jemals zugestellt werden

    • Also ich habe jetzt mal das Kommentarzeichen in Zeile 12 entfernt, in iptables den Port 25 freigegeben und den Server neugestartet – keine Änderung. nmap auf meinem PC sagt, der Port sei frei…

  • Da, hier habe ich den Log; jetzt muss ich nur noch den Fehler verstehen:


    May 4 13:22:50 app postfix/postscreen[4508]: CONNECT from [212.227.17.12]:53599 to [144.76.129.6]:25
    May 4 13:22:50 app postfix/postscreen[4508]: PASS OLD [212.227.17.12]:53599
    May 4 13:22:50 app postfix/postscreen[4508]: warning: cannot connect to service private/smtpd: No such file or directory

    Die IP ist der Web.de Mailserver, was hat es mit diesem ‚No such file or directory‘ auf sich?

    • Habe den Fehler:
      Zeile 13 in der master.cf auch einkommentieren:

      smtpd pass - - - - - smtpd

  • Hallo,
    Danke für die Anleitung! Der Empfang von Emails klappt wunderbar. Beim Senden (mit Apple Mail) bekomme ich allerdings die Fehlermeldung „Serverantwort: : Client host rejected: Access denied“. Der Server steht im Rechenzentrum. Anscheinend wird die IP überprüft, nicht jedoch mein Eintrag in der Datenbank.

  • Hallo,

    ich habe mit Hilfe deines Tutorials einen Mailserver auf meinem vServer aufgesetzt.
    An für sich läuft das auch sehr gut.

    Ich habe nur ein Problem:
    Manche Server Akzeptieren mein HELO nicht.

    Es kommen Mails zurück mit dem Fehler:
    450
    4.7.1 : Helo command rejected: Host not found (in
    reply to RCPT TO command)

    Über den Mailserver werden mehrere Benutzer auf ca. sieben Domains verwaltet. Kannst du mir da weiter helfen?

    Viele Grüße
    Roland

  • Gibt es eine Möglichkeit, Dovecot mitzuteilen, dass die Mails die reinkommen mit bestimmten Rechten angelegt werden? Momentan werden sie mit 600 angelegt, aber ich würde gern die Rechte auf 640 ändern (so dass ein Backup-User, der in der Gruppe vmail ist, diese Dateien lesen=sichern kann). In welcher Datei muss man das einstellen?

    Das mail-Verzeichnis des Postfachs hat die Rechte 750

  • Hallo,

    Ich schaffe es einfach nicht mich mit Thunderbird auf den Server zu verbinden. Folgende Daten gebe ich bei der Einrichtung des IMAP-Kontos in den entsprechenden Feldern ein:

    Ihr Name: Irgendwas
    E-Mail-Adresse: benutzer@domain.ltd
    Passwort: das entsprechende Passwort des vmail Benutzers (stimmt das so? Muss hier eh nicht der Hash-Wert eingegeben werden oder?)

    IMAP-Server: Die IP des Servers
    SMTP-Server: Die IP des Servers

    Benutzer Name Posteingangsserver: benutzer
    Benutzer Name Postausgangsserver: benutzer

    Nach einem ersten Test findet er die entsprechenden Einstellungen (Port, Verschlüsselung). Sobald ich aber auf „FERTIG“ klicke kommt folgende Meldung im mail.log:

    May 20 07:21:28 ubuntu-server dovecot: auth-worker(4884): Error: mysql(127.0.0.1): Connect failed to database (vmail): Access denied for user ‚vmail’@’localhost‘ (using password: YES) – waiting for 1 seconds before retry

    • Sodale …
      Habe jetzt folgende Zeile wie folgt abgeändert und jetzt hats geklappt.

      connect = host=127.0.0.1 dbname=vmail user=vmail password=vmailpasswort
      auf
      connect = „host=127.0.0.1 dbname=vmail user=vmail password=vmailpasswort“

  • Hallo,
    erstmal vielen Dank für die ausführliche Anleitung, es hat mich vieles erleichtert.
    Jedoch habe ich ein kleines Problem mit dem SMTP Postausgang und TLS 587 Verschlüsselung, und zwar wenn ich im lokalen Server (wo Postfix drauf läuft) ein E-Mail Client einrichte mit SMTP Port 587 mit TLS und die Adresse auf localhost setze, dann meckert Postfix, dass die Verbindung nicht aufgebaut werden kann.
    Aber das Komische ist, wenn ich jedoch den E-Mail Client auf entfernten Rechner mit den gleichen Parameter bis auf localhost einrichte, dann funktioniert alles.
    Daher die Frage, hat es damit zu tun, dass Postfix generell die Verschlüsselung nur außerhalb zulässt und nicht intern im Server? Oder gibt es eine Einstellung dafür, dass die Verschlüsselung immer außen und intern aktiv bleibt?
    Gruß Marcus

  • Hallo,

    ich habe die Anleitung befolgt – erstmal Danke dafür!

    Leider hatte/habe ich zwei Probleme:

    Das erste war, dass ich keine zertifikate in den entsprechenden Verzeichnissen hatte. ich Habe mir dann welche per openssl selbst erstellt. (Funktioniert das so?)

    Das zweite und noch bestehende Problem ist, dass ich mich nicht zu Datenbank Verbinden kann. Ich bin der Meinung alles wie beschreieben befolgt zu haben, allerdings bekomme ich die folgende Fehlermeldung, wenn ich versuche den Mailaccount in iOS einzurichten:
    May 24 09:00:08 benutzer dovecot[1600]: auth-worker(1615): Error: mysql(127.0.0.1): Connect failed to database (vmail): Access denied for user ‚vmail’@’localhost‘ (using password: NO) – waiting for 125 seconds before retry

    Ich vermute es hat mit der Ausgabe „using password: NO“ zu tun, aber leider habe ich keine Ahnung wie ich das verändere…

    Ich hoffe jemand kann mir helfen :/

    • PS. Bin auf Debian 8 unterwegs

      • Neben dem Problem das ich nichts von extern empfangen kann (intern geht), habe ich übrigens auch das sehr blöde Problem, das ich mich nicht mit dem gehashten Passwort anmelden kann.
        Wenn ich einen Benutzer anlege in in dem SQL Kommando wie beschrieben den Hashwert für mein gewünschtes Kennwort eingebe, dann wird der User zwar wie gewünscht angelegt, aber ich kann mich in iOS nicht einloggen (Falscher Benutzer/Kennwort)

        Wenn ich in der dovecot-sql.conf.ext das default_pass_scheme = plain setze, kann ich mich mit meinen Benutzern normal einloggen. Allerdings wird dann ja das Kennwort in Klarschrift übertragen, was ja nicht unbedingt sicher ist :-/
        Der Hashwert der Kennwörter ist auf jeden Fall korrekt, habe das Mehrmals überprüft und immer mit Copy-Paste gemacht.
        Eine Idee woran der Fehler liegen kann?

        Das Empfangen von Nachrichten geht übrigens auch bei modus „plain“ nicht :(

    • Mit der Datenbank Verbinden klappt nun übrigens! Nur noch das senden sowie Authentifizierung über SHA512 klappt nicht!

  • Robin-Masters

    Super Anleitung\en (die anderen werde ich mir auch noch ansehen)!

    Aber Dovecot zickte etwas rum und Mails wurden nicht abgelegt log Meldung: error: „Initialization failed: namespace configuration error: inbox=yes namespace missing“.
    Behoben durch:
    http://www.breezy.ca/?q=node/29

    Achso übrigens kann man das ganze natürlich auch mit Postfixadmin machen, man muss sich dann allerdings die Mühe mach die SQL Abfragen umzuschreiben… ;-)

  • Hier eine Auflistung der zu öffnenden Ports:


    # eMail-Empfang von fremden Servern
    /sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    /sbin/ip6tables -A INPUT -p tcp --dport 25 -j ACCEPT

    # eMail-Versand an andere Server
    /sbin/iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
    /sbin/ip6tables -A OUTPUT -p tcp --dport 25 -j ACCEPT

    # SMTP-Verbindung von eMail-Programm zum eigenen Server
    /sbin/iptables -A INPUT -p tcp --dport 587 -j ACCEPT
    /sbin/ip6tables -A INPUT -p tcp --dport 587 -j ACCEPT

    # IMAP-Server für eMail-Programme
    /sbin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT
    /sbin/ip6tables -A INPUT -p tcp --dport 143 -j ACCEPT

    # DNS-Auflösung fremder Domains
    /sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
    /sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
    /sbin/ip6tables -A OUTPUT -p udp --dport 53 -j ACCEPT
    /sbin/ip6tables -A OUTPUT -p tcp --dport 53 -j ACCEPT

  • Hallo,

    deine Anleitung ist wirklich super und der Mail Server läuft wunderbar.
    Habe mal eine generelle Frage:
    Wäre es nicht sinvoll die Beziehungen zwischen den Mysql Tabellen aufzubauen, also die Domains auch wirklich nur in der domain Tabelle speichern und in den anderen tabellen nur noch die ids? Also dann per Join die Abfragen machen?
    Habe mich das schon beim Einrichten gefragt, wollte es aber ertsmal genau nach deiner Anleitung machen.
    Geht das nicht wie ich mir das vorstelle? Oder sind die Join Anfragen zu langsam?
    Würde mich mal interessieren warum du es nicht so machst.

    Gruß Benedikt

  • Dominik Leitner

    Hallo,
    tolle Anleitung, gut gepflegt und verständlich erklärt. Jedes einzelne Howto auf Anhieb geklappt. Das einzige Problem das ich hatte war das ich keine Mails von web.de gmx.at… empfangen konnte. Der Fehler war das Port 25 nicht freigegeben war, aber jetzt haut alles hin.

    Vielen Dank und liebe Grüße

    Dominik

  • Bartholomäus T

    Ich kann komischerweise mails nur über Port 25 verschicken… Bzw. Muss Thunderbird (SMTP) auf 25 konfiguriert werden. Über Port 587… keine Chance… Mittlerweile bin ich ziemlich Ratlos. Die Logs geben auch nicht wirklich was dazu aus.
    Senden geht ohne Probleme…
    Kann mir vlt. jemand bitte weiter helfen.
    Vielen Dank schon mal

    • Bartholomäus T

      #
      # Postfix master process configuration file. For details on the format
      # of the file, see the master(5) manual page (command: „man 5 master“ or
      # on-line: http://www.postfix.org/master.5.html).
      #
      # Do not forget to execute „postfix reload“ after editing this file.
      #
      # ==========================================================================
      # service type private unpriv chroot wakeup maxproc command + args
      # (yes) (yes) (yes) (never) (100)
      # ==========================================================================
      smtp inet n – n – – smtpd
      #smtp inet n – – – 1 postscreen
      #smtpd pass – – – – – smtpd
      #dnsblog unix – – – – 0 dnsblog
      #tlsproxy unix – – – – 0 tlsproxy
      submission inet n – n – – smtpd -v
      -o syslog_name=postfix/submission
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_type=dovecot
      -o smtpd_sasl_path=private/auth
      -o smtpd_sasl_security_options=noanonymous
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
      #smtps inet n – – – – smtpd
      # -o syslog_name=postfix/smtps
      # -o smtpd_tls_wrappermode=yes
      # -o smtpd_sasl_auth_enable=yes
      # -o smtpd_reject_unlisted_recipient=no
      # -o smtpd_client_restrictions=$mua_client_restrictions
      # -o smtpd_helo_restrictions=$mua_helo_restrictions
      # -o smtpd_sender_restrictions=$mua_sender_restrictions
      # -o smtpd_recipient_restrictions=
      # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
      # -o milter_macro_daemon_name=ORIGINATING
      #628 inet n – – – – qmqpd
      pickup unix n – – 60 1 pickup
      cleanup unix n – – – 0 cleanup
      qmgr unix n – n 300 1 qmgr
      #qmgr unix n – n 300 1 oqmgr
      tlsmgr unix – – – 1000? 1 tlsmgr
      rewrite unix – – – – – trivial-rewrite
      bounce unix – – – – 0 bounce
      defer unix – – – – 0 bounce
      trace unix – – – – 0 bounce
      verify unix – – – – 1 verify
      flush unix n – – 1000? 0 flush
      proxymap unix – – n – – proxymap
      proxywrite unix – – n – 1 proxymap
      smtp unix – – – – – smtp
      relay unix – – – – – smtp
      # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
      showq unix n – – – – showq
      error unix – – – – – error
      retry unix – – – – – error
      discard unix – – – – – discard
      local unix – n n – – local
      virtual unix – n n – – virtual
      lmtp unix – – – – – lmtp
      anvil unix – – – – 1 anvil
      scache unix – – – – 1 scache
      #
      # ====================================================================

  • Hi,

    möchte mir eine wie beschrieben nach der postfix installation eine testmail schicken, allerdings kommt nichts an:
    echo „Hallo Welt Text“ | mailx -s „Hallo Welt“ root@ubuntu-server
    Wie man sieht gibt es in /var/log auch nur den ordner nobody

    root:ls /var/mail/ nobody

    An was liegt das und wie ändere ich das ab? Oder kann ich dem tutorial trotzdem folgen?

    • Kann mir da bitte jemand helfen? Habe das problem immer noch :(

      • Funktioniert jetzt bei mir.. Allerdings habe ich ein problem ! Wenn ich eine E-Mail an Web schicke kommt diese dort nicht an aber wenn ich von WEB auf meine schicke kommt Sie an.. :(

        Bei Googlemail funktioniert beides.. Könnte des am MX-Record liegen?

  • Hallo,
    ich hab meinen Mailserver wie in deinen Tutorials aufgesetzt. Hat alles wunderbar geklappt. Heute hab ich wieder mal Windows 7 statt Ubuntu gestartet und wollte mich über MS Outlook am Mailserver anmelden.

    Windows Fehlermeldung: „Es konnte keine Verschlüsselte verbindung hergestellt werden“
    mail.log: „server2 dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=, rip=“SERVERIP“, lip=“MEINEIP“, session=

    Thunderbird erzeugt ebenfalls die gleiche Fehlermeldung unter Windows. Das versenden funktioniert allerdings bei beiden

    Hat jemand eine Idee?

    Danke

  • Moin,

    Vielen Dank für die Anleitung. Ich habe noch nie so schnell einen Mailserver aufgesetzt! :) TOP.

    Mein Mailserver läuft nun auch stabil mit domain1.de
    Meine domain2.de liegt noch auf einem externen Mailserver. Wie kann ich jetzt auf dem neuen Mailserver die domain2.de einrichten (User einrichten, Mails migrieren etc.), und trotzdem weiterhin in der Lage sein, von domain1.de an domain2.de Mails zu senden, die dann noch auf dem alten, externen Mailserver landen?

    Gruß
    Dennis

    • Hi dennis hat bei dir der Mailtest funktioniert? ((echo „Hallo Welt Text“ | mailx -s „Hallo Welt“ root@ubuntu-server))?

  • Weil bei mir klappt der nicht und weiß nicht ob ich einfach weitermachen soll :D

  • Hallo Thomas,
    vielen Dank für Deine hervorragende Anleitung.

    Vor einem Jahr hat der Mitleser Xaver geschrieben, dass er z-push an Deinen mailserver angebunden hat. Nun versuche ich das gleiche für mein iphone, komme aber wegen meiner Wissenslücken nicht recht weiter. Das iphone findet den server schon (es erscheinen die Haken beim Anlegen des Kontos), fordert mich aber immer wieder auf, das password korrekt anzugeben.

    Kannst Du mir oder gar Xaver bei der Anbindung von z-push an dovecot unter die Arme greifen?

    Gruß
    Heiko

  • Zunächst: prima Anleitung, danke!
    Nach Beseitigung meiner Fehler :-) funktioniert fast alles. Nur leider schon der erste Schriit nicht (wie bei manchem Vorgänger hier auch):

    echo „Hallo Welt Text“ | mailx -s „Hallo Welt“ rollo@localhost.tux

    denn das nachfolgende „cat /var/mail/rollo“ ist leer (ob es vorher überhaupt vorhanden war, weiß ich jetzt nicht). Eine Meldung mit warning oder error gibt es nicht. In Thunderbird konnte ich alles einrichten, also DB und SSL funktionieren, dovecot wohl auch. Aber eben postfix schon in der Grundeinstellung nicht. Ich kann in Thunderbird eine Mail anmich verschicken, die steht dann auch im „gesendet“, aber nicht im Posteingang.

    Was könnte ich da übersehen haben? Ich will das Ganze nur als Testsystem lokal betreiben (PHP-Umgebung), habe also localhost als Server und localhost.tux als Domain, sowie in einer früheren Installation unter 12.04 ohne mysql-Anbindung auch, wo es funktioniert hat.

    Kannn mich bitte jemand in die richtige Richtung schubsen? Danke und VG,
    Ralph

  • Jun 29 10:51:17 s18241477 dovecot: auth-worker(955): Error: mysql: Query timed out (no free connections for 60 secs): SELECT username, domain, password FROM users WHERE username = ‚admin‘ AND domain = ‚x‘
    Jun 29 10:51:17 s18241477 dovecot: auth-worker(955): Error: sql(xx@xx): Password query failed: Not connected to database
    Jun 29 10:51:17 s18241477 dovecot: auth-worker(981): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can’t create TCP/IP socket (105) – waiting for 1 seconds before retry
    Jun 29 10:51:17 s18241477 dovecot: auth-worker(981): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can’t create TCP/IP socket (105) – waiting for 1 seconds before retry
    Jun 29 10:51:18 s18241477 dovecot: auth-worker(981): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can’t create TCP/IP socket (105) – waiting for 5 seconds before retry
    Jun 29 10:51:18 s18241477 dovecot: auth-worker(981): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can’t create TCP/IP socket (105) – waiting for 5 seconds before retry
    Jun 29 10:51:26 s18241477 dovecot: auth-worker(981): Error: mysql(127.0.0.1): Connect failed to database (vmail): Can’t create TCP/IP socket (105) – waiting for 25 seconds before retry
    Jun 29 10:52:08 s18241477 postfix/error[987]: fatal: socket: No buffer space available
    ~

    Kann sich das jemand erklären? Warum kann dass passieren und woran liegt das :X Habe server schon restartet hilft aber nicht wirkllich

  • PERFEKT!
    Alles funktioniert auf Anhieb einwandfrei und die Erklärungen haben genau den richtigen Umfang. Alles in allem hat man in einer guten Stunde alles am laufen und weiß, gleichzeitig warum wo was wie konfiguriert wird – GENIAL – DANKE!

  • Erstmal ein großes Lob für die sehr gut Anleitung. Aber leider komme ich einfach nicht weiter. Ich habe die Anleitung genau befolgt.
    Ich habe folgendes Problem:

    Jul 11 22:43:51 s17923346 dovecot: imap(postmaster@test.org): Error: user postmaster@test.org: Initialization failed: Namespace “: Home directory not set for user. Can’t expand ~/ for mail root dir in: ~/mail:LAYOUT=fs
    Jul 11 22:43:51 s17923346 dovecot: imap(postmaster@test.org): Error: Invalid user settings. Refer to server log for more information.

    Mein System ist ebenfalls ein Ubuntu14.04. Es wäre wirklich nett wenn mir jemand einen Schubs in die richtige Richtung geben könnte.

  • Habe alles nach Anleitung gemacht. Leider kann keine Verbindung hergestellt werden. mail.log gibt folgende Fehlermeldung aus:
    Jul 14 20:25:22 d10191 postfix/smtpd[29420]: warning: SASL: Connect to private/auth failed: No such file or direct$
    Jul 14 20:25:22 d10191 postfix/smtpd[29420]: fatal: no SASL authentication mechanisms
    Jul 14 20:25:23 d10191 postfix/master[29166]: warning: process /usr/lib/postfix/smtpd pid 29420 exit status 1
    Jul 14 20:25:23 d10191 postfix/master[29166]: warning: /usr/lib/postfix/smtpd: bad command startup — throttling

    und die mail.err
    Jul 14 20:29:34 d10191 postfix/smtpd[29436]: fatal: no SASL authentication mechanisms

    System läuft auf Ubuntu 14.04. Wäre super falls jemand eine Idee hat dieses Problem zu lösen!

  • Hi
    SHA512-CRYPT generiert immer verschiedene Hashs zu einem Password. Aus diesem Grund bekommen ich Fehler:

    dovecot: auth-worker(3832): Debug: SHA512-CRYPT(*******) != ‚$6$uklpULQ6vxgr90Rd$jsC4bEBfcUJLociQmEEZeKS7wnIDe/9MjF6D.rJTzQDK37RgVBTtp2dm2oWjSyVYq.kDjW5Mj4OvbnpzknVmO‘

    Was mache ich falsch?

    • Hi,

      dass beim generieren von SHA-512-CRYPT Hashes sich der Hash jedes Mal ändert, ist eine Besonderheit des Algorithmus und muss so sein. Klingt merkwürdig, weil man das von anderen Hashes nicht gewohnt ist, aber es funktioniert. Also keine Sorge, wenn sich die Hashes bei jedem Versuch ändern. Das muss so sein und funktioniert.

      LG Thomas

  • Erstmal danke für das tolle Tutorial!
    Ich habe eine frage zum Thema Sicherheit bei Mails (die nur indirekt mit deinem Tutorial zutun hat):
    Ich will Mails per PHP versenden und nutze die mail() Funktion was einwandfrei klappt.
    Da beim ersten senden ein „komischer“ Absender angegeben war habe ich geschaut wie man den Absender ändert.
    Scheinbar durch setzen eines Headers. Ich habe rumexperementiert weil ich so eine Mailadresse die garnicht existiert als
    Absender nutzen kann, und einfach mal versucht einen Absender der nicht von meiner Domain kommt anzugeben,
    indem ich folgenden code verwendet habe:

    <?php

    $to="meineadresse@gmx.de";
    $subject="PHP Mail Test";
    $msg="If you can read this, it worked!";
    $headers .= 'From: Google ‚ . „\r\n“;
    var_dump(mail($to,$subject,$msg,$headers));
    ?>

    Tatsächlich zeigt mir mein Thunderbird in meinem GMX Account an,
    das die Mail von Google kommen würde, und wenn ich auf Antworten drücke wird die Antwort
    an root@gmail.com addressiert.
    Wie ist das möglich? Wie schütze ich mich das jemand seinen Header manipuliert und sich als mich ausgiebt?
    Sperren Gmail und GMX mich, wenn ich zu oft Mails mit „gefaktem“ Header versende?

    • Hi,

      ja, die Manipulation von E-Mail Headern ist bei Spammern gängige Praxis. Dagegen können Anti-Spam-Tools sicherlich helfen. Die müssten dann wissen, ob die Domain, von der der Absender vorgibt zu kommen, auch tatsächlich die IP zugeordnet hat, von der die E-Mail kommt. Ich gehe mal davon aus, dass GMX und alle anderen großen Mailanbieter das nachprüfen und du mit der Zeit als Spammer eingestuft werden wirst. Ich hab damit auch mal ein bisschen gespielt und bin mit einigen Mails auch direkt im Spam gelandet.

      Auf dem eigenen Server kannst du den Nutzen verbieten, mit den Mailheadern zu experimentieren: https://legacy.thomas-leister.de/internet/postfix-versenden-ueber-fremde-mailadresse-verhindern/

      Wie du einen Check gegen Manipulation auf deinem Server einrichtest für eingehende E-Mails (also sodass seine Nutzer nicht Opfer von Betrügern werden, kann ich dir spontan nicht sagen. Da lohnt sich sicherlich eine Suche im Bereich der Anti-Spam-Tools.

      LG Thomas

  • Moin Thomas,
    das ist eine sehr schöne und gute Anleitung. Ich hab mich mal rangesetzt und nach deiner Anleitung ein Mail-Server auf meinen VServer aufgesetzt.
    Der Server ist auch ohne Fehlermeldungen gestartet aber als ich mir eine Mail zuschicken wollte bekam ich folgende Meldung in der mail.log:
    Jul 22 13:07:21 crvmbb0x postfix/smtpd[32496]: connect from
    mail-lb0-x231.google.com[2a00:1450:4010:c04::231]
    Jul 22 13:07:22 crvmbb0x postfix/smtpd[32496]: NOQUEUE: reject: RCPT from
    mail-lb0-x231.google.com[2a00:1450:4010:c04::231]: 554 5.7.1 < webmaster@crvmbb0x.de>: Relay access denied; from=
    to= proto=ESMTP helo=
    Jul 22 13:07:22 crvmbb0x postfix/smtpd[32496]: disconnect from
    mail-lb0-x231.google.com[2a00:1450:4010:c04::231]

    Das senden habe ich noch nicht getestet, da ich das noch nicht in einen EMail Programm integriert habe.

    Hoffe du kannst mir helfen.

    Gruß Jörg

  • Funktioniert einwandfrei!!!

    Vielen Dank für die super Anleitung!!!!

    Lg aus der Schweiz, Manuel

  • Hi Thomas,

    vielen Dank für die Anleitung!

    Komischerweise bietet mir Thunderbird beim Einrichtgen des Mail Accounts für den IMAP Server keine Verschlüsselung an.
    Woran könnte das liegen?

    Viele Grüße,
    Alex

  • Hallo Thomas,

    vielen Dank für diesen geniales Beitrag.

    Ich drücke mich schon wirklich sehr lange vor dem Thema „E-Mail Server einrichten“. Wirkte auf mich immer viel zu aufwendig wenn man sich andere Anleitung anschaut. Aber zu diesem Beitrag muss ich sagen: Hat Spaß gemacht, ich verstehe es und vor allem … es läuft :)

    Wirklich super. Weiter machen!

    Grüße,
    Stephan

  • Erstmal vielen Dank für den Artikel. Hat alles auf Anhieb geklappt.

    Doch nun das aber: Ich habe zwei Domains: DomainA und DomainB. Nun zeigen diese Domains auf die selbe IP, also einen Server.
    Es soll nun möglich sein, dass sich jemand mit usename@domainA auch nur unter dem server domainA anmelden kann mit seiner username/password Kombination.
    Derzeit ist es nämlich nicht möglich, dass sicher user@domainB überhaupt bei DomainB anmelden kann. Als „Gateway“ dient bei der Anmeldung immer DomainA, da (Dovecot?) nur auf diesem Namen horscht.

    Macht das Sinn? Kannnst du mir da eventuell weiterhelfen?

    Vielen Dank, Oliver

    • Hi! Ich betreibe meine Mailserver selbst mit mehreren Domains auf einer IP. Der Client loggt sich mit seiner Mailadresse ein und nutzt dabei einfach irgendeine Domain, die auf die richtige IP-Adresse verweist. Wichtig ist eben nur, dass man auf der richtigen IP bzw auf dem richtigen Server landet. Was aber noch zu beachten ist: Natürlich müssen die SSL Zertifikate zu der Domain passen, zu der man verbindet. Da man in Dovecot (glaube ich) aber nur ein Zertifikat einstellen kann (und ich für jede Domain eigene Zertifikate habe), verbinde ich immer zu der Hauptdomain meines Servers. Das sieht bei mir dann so aus, dass ich bei einer @thomas-leister.de Mailadresse trotzdem z.B. imap.trashserver.net als Serverdomain einstelle, statt imap.thomas-leister.de. …. einfach nur, damit die Zertifikate passen. Meine Mailserver nutzen immer die trashserver.net Zertifikate.

      Auch zu beachten: Alle Domains, zu denen du verbinden willst, müssen einen gültigen MX-Record haben. Vllt fehlt das bei dir noch.

      LG Thomas

  • Hi!
    Ich habe meinen Mailserver mit deiner Anleitung eingerichtet und es funktioniert super. Vielen dank dafür!
    Ich habe jetzt aber ein Problem: Ich möchte die Mailadressen, die über meinen Postfix laufen, auch per GMail verwalten können. Bzw. möchte ich denen, die ne Mail Adresse bei mir haben, aber keine Ahnung von Thunderbird, Outlook etc. die Möglichkeit geben, mails auch über GMail zu senden und zu empfangen.

    Das Empfangen funktioniert auch, aber wenn ich eine Mail über eine Mail Adresse verschicken will, die über meinen Mail Server läuft, bekomme ich beim Empfänger folgende nachricht:
    Technical details of permanent failure:
    Google tried to deliver your message, but it was rejected by the relay IP
    The error that the other server returned was:
    553 5.7.1 : Sender address rejected: not owned by user benutzer/mailadresse

    Wie sage ich nun Postfix/Dovecot, dass google über den server Mails versenden kann?

    Danke und viele Grüße
    Roland

  • Das Scheint woll unter Debian 8 nicht zu funktionieren da gibt mir dovecot raus:
    — Logs begin at Sun 2015-08-16 12:13:20 CEST, end at Sun 2015-08-16 15:13:59 CEST. —
    Aug 16 15:12:57 vserver3010.vserver-on.de postfix/smtpd[19817]: connect from dyndsl-092-252-039-214.ewe-ip-backbone.de[92.252.39.214]
    Aug 16 15:12:57 vserver3010.vserver-on.de postfix/smtpd[19817]: warning: SASL: Connect to private/auth failed: No such file or directory
    Aug 16 15:12:57 vserver3010.vserver-on.de postfix/smtpd[19817]: fatal: no SASL authentication mechanisms
    Aug 16 15:12:58 vserver3010.vserver-on.de postfix/master[19814]: warning: process /usr/lib/postfix/smtpd pid 19817 exit status 1
    Aug 16 15:12:58 vserver3010.vserver-on.de postfix/master[19814]: warning: /usr/lib/postfix/smtpd: bad command startup — throttling
    Aug 16 15:13:58 vserver3010.vserver-on.de postfix/smtpd[19820]: connect from dyndsl-092-252-039-214.ewe-ip-backbone.de[92.252.39.214]
    Aug 16 15:13:58 vserver3010.vserver-on.de postfix/smtpd[19820]: warning: SASL: Connect to private/auth failed: No such file or directory
    Aug 16 15:13:58 vserver3010.vserver-on.de postfix/smtpd[19820]: fatal: no SASL authentication mechanisms
    Aug 16 15:13:59 vserver3010.vserver-on.de postfix/master[19814]: warning: process /usr/lib/postfix/smtpd pid 19820 exit status 1
    Aug 16 15:13:59 vserver3010.vserver-on.de postfix/master[19814]: warning: /usr/lib/postfix/smtpd: bad command startup — throttling
    ~

  • Hallo Thomas,
    zunächst danke für die wirklich hervorragende Anleitung. Dennoch hat sich ein Problem eingeschlichen, dass ich doch sonderbar finde:
    Ich habe mehrere User eingerichtet. Wenn an User1@domain.de eine email eingeht, bekommt user2@domain.de diese ebenfalls. Das ist ja irgendwie nicht Sinn der Sache.
    Hast du ggf. einen Tipp, wo ich schauen könnte? Ich steh ein bisschen wie der Ochs vorm Berg.
    LG Ben

  • Folgendes Problem:

    auth-worker(23767): Error: sql(nutzername@domain.de,::1): User query failed: Unknown column ‚home‘ in ‚field list‘ (using built-in default user_query: SELECT home, uid, gid FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘)

    Habe in der dovecot aber keine user_query sondern nur die password_query. Komische Sache. Muss ich etwas in der auth-sql.conf.ext ändern?

    sieht derzeit so aus:

    # „prefetch“ user database means that the passdb already provided the
    # needed information and there’s no need to do a separate userdb lookup.
    #
    #userdb {
    # driver = prefetch
    #}

    userdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf.ext
    }

    # If you don’t have any user-specific settings, you can avoid the user_query
    # by using userdb static instead of userdb sql, for example:
    #
    userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%u
    }

    Grüße

    • Hi ich habe das gleiche Problem.
      in der dovecot-sql.conf habe die password_query wie folgt angepasst.
      password_query = \
      SELECT username, domain, password \
      FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘

      Die mail.err hat folgenden Inhalt nach einem Loginverusch:
      Aug 19 16:33:34 ubuntu dovecot: auth-worker(17710): Error: sql(admin@xxx): User query failed: Unknown column ‚home‘ in ‚field list‘ (using built-in default user_query: SELECT home, uid, gid FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘)
      Aug 19 16:33:34 ubuntu dovecot: lmtp(17706): Error: user admin@xxx: Auth USER lookup failed

      Die mail.log:
      Aug 19 16:33:34 h2471863 dovecot: lmtp(17706): Connect from local
      Aug 19 16:33:34 h2471863 dovecot: auth-worker(17710): Warning: mysql: Query failed, retrying: Unknown column ‚home‘ in ‚field list‘
      Aug 19 16:33:34 h2471863 dovecot: auth-worker(17710): Error: sql(admin@marcel-westhoff.de): User query failed: Unknown column ‚home‘ in ‚field list‘ (using built-in default user_query: SELECT home, uid, gid FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘)
      Aug 19 16:33:34 h2471863 dovecot: lmtp(17706): Error: user admin@marcel-westhoff.de: Auth USER lookup failed
      Aug 19 16:33:34 h2471863 postfix/lmtp[17705]: 63E1427681741: to=, relay=smtp.marcel-westhoff.de[private/dovecot-lmtp], delay=1144, delays=1144/0.01/0.01/0.02, dsn=4.3.0, status=deferred (host smtp.marcel-westhoff.de[private/dovecot-lmtp] said: 451 4.3.0 Internal error occurred. Refer to server log for more information. (in reply to RCPT TO command))
      Aug 19 16:33:34 h2471863 dovecot: lmtp(17706): Disconnect from local: Successful quit

      • Hallo alle zusammen ich habe den Fehler selber beheben können. Dovecot möchte eine user_query machen und wenn man den Part auskommentiert lässt versucht er eine vorprogrammierte default abfrage. Also habe ich den Part einfach an die DB angepasst:
        user_query = \
        SELECT username, domain \
        FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘
        Jetzt kann ich mich ohne Probleme anmelden.

        • Danke, Heartsaver!

          Jetzt funktioniert es auch ohne Fehlermeldungen im Log. Es ging vorher übrigens alles einwandfrei, aber die Errors im Log haben mich immer gestört.

          Grüße

          • Ich habe mich daudrch auch leider nicht anmelden können. Sollte gegebenfalls mal angepasst werden.

        • Habe noch einen Tippfehler in meiner Ändernung gefunden.

          user_query = \
          SELECT username, domain \
          FROM users WHERE username = ‚%n‘ AND domain = ‚%d‘

  • Hi, habe mich nach der Anleitung von dir gehalten aber ich habe folgendes Problem. Wenn ich meine Adresse mit der mx tool box teste, erscheint bei der Absende Adresse : 250-noonee.localdomain . Eigentlich sollte dies dann .de heissen. Desweiteren laufen mehrere Domains auf der IP Adresse so das anstatt einer .de auch .org und .com Adressen vorhanden sind. MX,PTR und SPF Einträg sind vorhanden wie auch ein reverse eintrag zur ip. Wie kann ich den das Problem lösen , das die Domains dann als Absender richtig sind ? Gruß Dennis

  • Hallo – danke für die Anleitung, sie hat für mich bis auf eine – recht umfanbgreiche AUsnahme funktioniert.
    Da ich Postfixadmin benutzen wollten stand ich vor großen Problemen, die wirklich lange brauchten um für mich als Amateur gelöst zu werden. Ich habe deswegen den Vorschlag an Dich, gleich ganz oben anzumerken, dass dieses Tutorial NICHT mit Postfixadmin kompatibel ist. Das wäre nur fair für die USer die via google darauf stossen. Dennoch danke für deine Mühe, und wie gesagt. postfix, dovvecot und auch eigtl. das ganze tut sind spitze, meine probelem begannen erst mit postfixadmin.

  • Bekomme im syslog folgende Fehlermeldung:
    Aug 23 22:19:41 Ubuntu-1404-trusty-64-minimal dovecot: auth: Fatal: No passdbs specified in configuration file. LOGIN mechanism needs one
    Aug 23 22:19:41 Ubuntu-1404-trusty-64-minimal dovecot: imap-login: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=, rip=80.130.226.73, lip=5.9.60.133, TLS handshaking, session=
    Aug 23 22:19:52 Ubuntu-1404-trusty-64-minimal dovecot: imap-login: Warning: Auth process not responding, delayed sending initial response (greeting): user=, rip=80.130.226.73, lip=5.9.60.133, TLS, session=
    Aug 23 22:20:12 Ubuntu-1404-trusty-64-minimal dovecot: imap-login: Error: Timeout waiting for handshake from auth server. my pid=27028, input bytes=0
    Aug 23 22:20:12 Ubuntu-1404-trusty-64-minimal dovecot: imap-login: Disconnected: Auth process broken (disconnected before auth was ready, waited 31 secs): user=, rip=80.130.226.73, lip=5.9.60.133, TLS, session=
    Aug 23 22:20:41 Ubuntu-1404-trusty-64-minimal dovecot: auth: Fatal: No passdbs specified in configuration file. LOGIN mechanism needs one

  • Guten Abend Thomas

    Da ich meinen Server neu aufgesetzt habe, musste ich auch den Mailserver neu machen. Ich habe einfach die Configs von dovecot und postfix überschrieben. Funktioniert auch alles soweit. Nur ich kann keine Email von außen empfangen. Bzw. erst wenn ich Port 25 freigebe. Ich weiß nun nicht ob es normal ist, das Provider nur auf diesen Port senden und nicht auf den offenen 587 oder ob ich etwas falsh gemacht habe. Postfix hört auf beiden Ports.

    Mit freundlichen Grüßen
    Tobias

    • P.S. Habe im Internet recherchiert und und die sagen es muss Port 25 offen sein.
      Falls du mir recht gibst, könntest du es ja vllt noch in die Anleitung schreiben (neben port 143 und 587) :)

  • Hallo Thomas,

    super Blog, vielen Dank für die ausführliche Anleitung. Hat alles super funktioniert bis auf Dovecot, welcher sicht nicht starten ließ bei mir ohne noch folgende zusätzliche Module unter Ubunut 14.04 zu installieren.

    apt-get install dovecot-sieve

    apt-get install dovecot-managesieved

    Vermutlich reicht nur dovecot-sieve, hab aber auch noch gleich das managedsieved installiert.

    Ohne dieses konnte ich Dovecot nicht starten und in den Logs stand:

    fatal: no SASL authentication mechanisms

    was aber irreführend ist und ich ständig nur nach dem Fehler suchte.

    Bei der Augabe von dovecot -n kommt dann der eigentliche Grund für das Nichtstarten des Dienstes mit

    Fatal: Error in configuration file /etc/dovecot/dovecot.conf: protocols: Unknown protocol: sieve

    Grüße
    Marcus

  • Kann mit Outlook 2010 unter Windows XP nicht vom IMAP die Mails abrufen, unter Windows 7 und Outlook 2010 funktioniert dies allerdings, hat jemand einen Plan wo es hakt?

  • Hallo Thomas,

    zunächst danke für das ausführliche Tutorial!
    Ich bin der Anleitung gefolgt und habe den Postfix und den Dovecot soweit installiert und konfiguriert. Ich kann auch Mails an extern (z.B. an meine gmail Adresse schicken). Ich kann aber leider keine Mails von extern empfangen. Mails von Intern kommen an. Im Log (/var/log/mail.log) erhalte ich folgende Meldung beim Versuch eine Mail von extern an mich zu schicken:

    https://paste.trashserver.net/pmj6nrnbt

    Ich denke diese Zeilen weisen auf den Fehler hin:

    Sep 20 08:01:03 server postfix/submission/smtpd[14214]: generic_checks: name=permit_sasl_authenticated
    Sep 20 08:01:03 server postfix/submission/smtpd[14214]: generic_checks: name=permit_sasl_authenticated status=0
    Sep 20 08:01:03 server postfix/submission/smtpd[14214]: generic_checks: name=reject
    Sep 20 08:01:03 server postfix/submission/smtpd[14214]: NOQUEUE: reject: RCPT from mail-qg0-f47.google.com[209.85.192.47]: 554 5.7.1 : Client host rejected: Access denied; from= to= proto=ESMTP helo=

    Ich habe aber leider noch keine Lösung dafür gefunden.
    Vielleicht hast du ja eine Idee.

    Viele Grüße und Danke im Voraus,
    starcraft

  • Hallo Thomas,

    erst einmal danke für das ausführliche Tutorial!

    Ich bin der Anleitung gefolgt, kann mich aber leider nicht anmelden an was könnte das liegen?

    Schon mal Viele Danke und Viele Grüße
    Nico

    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-server1.yourvserver.net
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-PIPELINING
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-SIZE 51200000
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-VRFY
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-ETRN
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-STARTTLS
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-ENHANCEDSTATUSCODES
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250-8BITMIME
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: > p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 250 DSN
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: p5091D557.dip0.t-ipconnect.de[80.145.213.87]: 220 2.0.0 Ready to start TLS
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: send attr request = seed
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: send attr size = 32
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: private/tlsmgr: wanted attribute: status
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute name: status
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute value: 0
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: private/tlsmgr: wanted attribute: seed
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute name: seed
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute value: EUiMJp22kadHrFWtxuoVkqmWtaWIF14TiXsmKO9uD/Q=
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: private/tlsmgr: wanted attribute: (list terminator)
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute name: (end)
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: SSL_accept error from p5091D557.dip0.t-ipconnect.de[80.145.213.87]: lost connection
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_hostname: p5091D557.dip0.t-ipconnect.de ~? 127.0.0.0/8
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_hostaddr: 80.145.213.87 ~? 127.0.0.0/8
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_hostname: p5091D557.dip0.t-ipconnect.de ~? [::ffff:127.0.0.0]/104
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_hostaddr: 80.145.213.87 ~? [::ffff:127.0.0.0]/104
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_hostname: p5091D557.dip0.t-ipconnect.de ~? [::1]/128
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_hostaddr: 80.145.213.87 ~? [::1]/128
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_list_match: p5091D557.dip0.t-ipconnect.de: no match
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: match_list_match: 80.145.213.87: no match
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: send attr request = disconnect
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: send attr ident = submission:80.145.213.87
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: private/anvil: wanted attribute: status
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute name: status
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute value: 0
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: private/anvil: wanted attribute: (list terminator)
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: input attribute name: (end)
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: lost connection after STARTTLS from p5091D557.dip0.t-ipconnect.de[80.145.213.87]
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: disconnect from p5091D557.dip0.t-ipconnect.de[80.145.213.87]
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: master_notify: status 1
    Sep 21 20:45:16 server1 postfix/submission/smtpd[27682]: connection closed
    Sep 21 20:45:21 server1 postfix/submission/smtpd[27682]: auto_clnt_close: disconnect private/tlsmgr stream
    Sep 21 20:46:56 server1 postfix/submission/smtpd[27682]: idle timeout — exiting
    Sep 21 20:48:36 server1 postfix/anvil[27681]: statistics: max connection rate 1/60s for (smtp:80.145.213.87) at Sep 21 20:45:16
    Sep 21 20:48:36 server1 postfix/anvil[27681]: statistics: max connection count 1 for (smtp:80.145.213.87) at Sep 21 20:45:16
    Sep 21 20:48:36 server1 postfix/anvil[27681]: statistics: max cache size 2 at Sep 21 20:45:16
    Sep 21 20:49:56 server1 dovecot: imap-login: Aborted login (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=80.145.213.87, lip=37.120.188.129, TLS, session=

  • SASL Auth beachten

    Hi,

    ich hab es endlich geschafft, daß ich über meinen Server auch Mails verschicken kann. Das Abrufen mit Thunderbird hat eigentlich recht schnell funktioniert. Aber ich war einfach nicht in der Lage, mit Thunderbird über meinen Account auch eine email rauszuschicken.

    Hier hab ich den entscheidenden Hinweis gefunden: https://www.df.eu/de/service/df-faq/cloudserver/anleitungen/smtp-authentifizierung-mit-postfix-debian/

    Um SASL konfigurieren zu können, darf Postfix nicht im chroot-Verzeichnis laufen. Ändern Sie hierfür die Datei master.cf folgendermaßen ab:
    # ==========================================================================
    # service type private unpriv chroot wakeup maxproc command + args
    # (yes) (yes) (yes) (never) (100)
    # ==========================================================================
    smtp inet n – n – – smtpd

    Unter dem Punkt „chroot“ muss hier somit ein „n“ stehen.

    Genau das war bei mir der Fall, hier stand defaultmäßig unter chroot ein –

    Nach dieser Änderung läuft der Server nun wie erwartet.

    Vielen Dank für das Tutorial!

  • Hallo Thomas,

    erstmal vielen, vielen Dank für dieses super Tutorial!!! Mein Mailserver läuft jetzt schon einige Monate absolut zuverlässig.

    Zum Spaß wollte ich nun noch eine Überwachung des Mailservers einrichten. Dazu habe ich mir Nagios herausgesucht, welches auf einem BananaPi im Heimnetzwerk laufen soll. Der Mailserver wird bei 1&1 gehostet. Um auf dem Mailserver keinen zusätzlichen Dienst laufen zu haben, habe ich diesen mit vpnc mit meiner Fritzbox in mein Netzwerk verbunden. Die Idee war, dass Nagios dann über die private IP auf den Server zugreifen kann.

    Nun habe ich aber folgendes Problem:
    Der Mailserver funktioniert nicht mehr, wenn das VPN aktiviert ist. Ich erreiche zwar immer noch den Server per Ping oderdie Website (webmail), kann mich aber bspw. bei letzterem nicht einloggen. Für mich hat es den Anschein, dass der Zugriff auf die Datenbank nicht mehr funktioniert. Kann es sein, dass es ein Problem mit dem Localhost bei aktiviertem VPN gibt? Hast Du eine Idee, wie das lösen kann ohne den VPN Server auf den Mailserver zu legen oder über SSH die Daten an Nagios zu geben?

    Gruß
    Andreas

  • Moin Thomas,

    mein Server läuft bis jetzt super.
    Aber wo setzte ich smtp.domain.tld und imap.domain.tld?

    Cheers
    Blake

  • Hallo Thomas,

    erst einmal danke für diese grandiose Anleitung, allerdings habe ich, wie die meisten hier, Probleme mit dem Empfangen.
    Laut netstat ist der Port 25 (smtp) nicht belegt. Ich denke mal der smtp Daemon wurde nicht gestartet. In den Logs sind leider keine Warnungen oder Errors zu finden.
    Hast du eine Idee wo man da anpacken könnte um den Fehler zu finden?

    Der Server läuft auf Ubuntu 14.04.

    Gruß
    Tom

  • Hi,

    habe mal einen E-Mail Server Security Test über meine Domain laufen lassen. Dort hat er unter anderen gemekert das
    SMTP Plain Text Authentication möglich ist.
    nach etwas googlen kann man das wohl über die master.cf einstellen reiter smtps einstellen.
    Hat es einen bestimmten grund das dies hir in der coinfig nicht behandelt wurde ?
    ansonsten wäre super wnen du das noch anpassen könntest
    mfg

  • nachtrag, es langt anscheinend wenn man diese option in die main.cf einträgt
    smtpd_tls_auth_only = yes

  • Super Beitrag !!! Gefällt mir bestens :D
    Wenn man für postfix einen relayhost benötigt, wo hinterlegt man dann idealerweise die Zugangsdaten für diesen? Wie üblich hiermit smtp_sasl_password_maps ?

    • Scheint nicht wirklich zu funktionieren. Habe das hier versucht:
      relayhost = smtp.1und1.de
      smtp_sasl_auth_enable = yes
      smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
      smtp_sasl_security_options = noanonymous

      Die sasl_passwd war mit postmap entsprechend erstellt.

      Was wäre der richtige Weg für eine Authentifizierung am relay host ?

  • Hallo,

    ich kann auch über mailx Emails an mein postfach versenden, jedoch klappt das verschicken über SMTP nicht.

    Folgende Konfiguration habe ich gewählt:
    var transporter = nodemailer.createTransport(smptTransport({
    host: ‚xxxxxxxxxxxx‘,
    port: 587,
    authMethod: ‚PLAIN‘,
    tls: {
    rejectUnauthorized:false,
    },
    auth: {
    user: ‚xxxxxxxxxx‘,
    pass: ‚xxxxxxxxxx‘
    }
    }));

    aber ich kriege die Fehlermeldung:

    {
    „code“: „EAUTH“,
    „response“: „535 5.7.8 Error: authentication failed: „,
    „responseCode“: 535
    }

    ich habe mir die log datei /var/log/mail.log angeschaut, werde aber nicht schlau daraus.
    Und habe ewig gesucht, wo ich im Internet mehr Info kriege, aber nichts passt zu meinem Problem.

    /etc/postfix/main.cf:
    ————
    smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
    biff = no

    append_dot_mydomain = no

    readme_directory = no

    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mydestination =
    mailbox_size_limit = 0
    message_size_limit = 51200000
    recipient_delimiter = +
    inet_interfaces = all
    myorigin = /etc/mailname
    inet_protocols = all

    ##### TLS parameters ######
    smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    smtpd_use_tls=yes
    smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

    ###### SASL Auth ######
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes

    ###### Use Dovecot LMTP Service to deliver Mails to Dovecot ######
    virtual_transport = lmtp:unix:private/dovecot-lmtp

    ##### Only allow mail transport if client is authenticated or in own network (PHP Scripts, …) ######
    smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

    virtual_alias_maps = mysql:/etc/postfix/virtual/mysql-aliases.cf
    virtual_mailbox_maps = mysql:/etc/postfix/virtual/mysql-maps.cf
    virtual_mailbox_domains = mysql:/etc/postfix/virtual/mysql-domains.cf
    local_recipient_maps = $virtual_mailbox_maps

    relayhost =
    ===========================
    Sollte ich ein typo haben, dann finde ich ihn nicht.

    Würde mich freuen, wenn mir geholfen werden kann.

  • Hallo Zusammen

    Vielen Dank für die gute Anleitung. Ich habe jetzt nur ein kleines Problem:

    Dec 7 19:51:17 euve83874 dovecot: auth-worker(8346): Error: mysql(127.0.0.1): Connect failed to database (vmail): Access denied for user ‚vmail’@’localhost‘ (using password: YES) – waiting for 125 seconds before retry

    Was habe ich falsch konfiguriert?

    Vielen Dank für eure Antwort.

    Gruss Flavio Meyer

  • Hallo,
    gibt es eine Möglichkeit, eine Alias Adresse anzulegen mit einem Präfix und einem Wildcard ?
    Also so in der Art wie Gewinnspiel-*@domain.tld , die dann Mails wie Gewinnspiel-Seite1@domain.tld und Gewinnspiel-Seite2@domain.tld etc. annimmt? (Ich will keine CatchAll für alle Mails, es soll der Präfix abgefragt werden.)

    MfG

  • Hallo Thomas,

    Super Anleitung aber ich habe unter 14.04 Probleme mit MYSQL und Dovecote.
    Ich habe im .log folgende Meldung an der ich hänge:

    Dec 11 00:49:09 mail dovecot: auth: Warning: sql: Ignoring changed iterate_query in /etc/dovecot/dovecot-sql.conf.ext, because userdb sql not used. (If this is intentional, set userdb_warning_disable=yes)
    Dec 11 00:49:09 mail dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=, rip=192.168.178.22, lip=192.168.178.34, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines:SSL3_READ_BY$
    Dec 11 00:49:13 mail dovecot: imap-login: Disconnected (auth failed, 1 attempts in 2 secs): user=, method=PLAIN, rip=192.168.178.22, lip=192.168.178.34, TLS, session=
    Dec 11 00:50:36 mail dovecot: auth: Warning: sql: Ignoring changed iterate_query in /etc/dovecot/dovecot-sql.conf.ext, because userdb sql not used. (If this is intentional, set userdb_warning_disable=yes)

    Kannst Du mir weiterhelfen?

    Vielen Dank vorab!

    Gruss Denny

  • Moin,
    erst mal ein GANZ GROßES LOB von mir, tolle Arbeit die Sie hier leisten :)

    So ich sitze seit einiger Zeit an dem Problem das ich mi nicht per E-Mail Programm ein loggen kann und Mail abrufen noch senden verweigert wird.

    Ich habe alles immer und immer wieder überprüft und neu gemacht aber es will einfach nicht.

    Logs von Heute.
    mail.err

    Dec 11 20:10:25 xxxxxxxxx dovecot: auth: Error: userdb(doveadm@xxxxxxxxx.de,93.20
    Dec 11 20:10:25 xxxxxxxxx dovecot: imap: Error: Authenticated user not found from
    Dec 11 20:10:27 xxxxxxxxx dovecot: auth: Error: userdb(doveadm@xxxxxxxxx.de,93.20
    Dec 11 20:10:27 xxxxxxxxx dovecot: imap: Error: Authenticated user not found from

    mail.err

    Dec 11 20:10:25 xxxxxxxxx dovecot: auth: Error: userdb(doveadm@xxxxxxxxx.de,93.20
    Dec 11 20:10:25 xxxxxxxxx dovecot: imap: Error: Authenticated user not found from
    Dec 11 20:10:27 xxxxxxxxx dovecot: auth: Error: userdb(doveadm@xxxxxxxxx.de,93.20
    Dec 11 20:10:27 xxxxxxxxx dovecot: imap: Error: Authenticated user not found from

    Mehr steht leider nicht drinnen.

    Selbst die Verschlüsselung den Key und so weiter habe ich immer und immer neu gemacht und kontrollier.

    Da her wende ich mich jetzt auf diesem wage an Sie, mit der Hoffnung das Sie mir eventuell helfen können.
    Ach das hätte ich fast vergessen mein OS ist Ubuntu 14.04.3

    lg
    Stefan Leubner

    • Grüße,
      so das Problem habe ich gelöst.
      Nach dem ich den MySQL Server deinstalliert hatte (also so richtig runter vom System auch bei dpkg, nach dem Motto MySQL Server war hier nie drauf) hatte ich ihn wieder neu aufgesetzt. Die Daten Sicherung wieder drauf gespielt und siehe da es geht.
      Das war ein stück harte Arbeit da ich das 3x gemacht hatte wo bei dritten mal davor wirklich alles weggehauen hatte was irgend wie SQL war Tadar :) es geht.

      Jetzt kann ich E-Mail senden und empfangen ABER, sende ich eine E-Mail vom admin@xxxxxxxxx.de nach z.B einer meiner T-Online.de Adresse da geht die kommt an, wenn ich dann drauf antworte kommt von meinem System die Meldung admin@xxxxxx.de: unknown user: „admin“ . Ich habe einen Strato V Server h14xxxxxxxxx.stratoserver.net und eine andere Domain rz-xxxxxxx.de die beide die gleiche IP benutzen. wie stelle ich das ein?

      Undelivered Mail Returned to Sender

      This is the mail system at host h14xxxxxxx.stratoserver.net.

      I’m sorry to have to inform you that your message could not
      be delivered to one or more recipients. It’s attached below.

      For further assistance, please send mail to postmaster.

      If you do so, please include this problem report. You can
      delete your own text from the attached returned message.

      The mail system

      : unknown user: „admin“

      In Moment stehe ich mal wieder auf dem Schlauch und sehe vor lauter Bäume den Wald nicht :)

      Für Lösungsvorschläge wäre ich sehr dank bar auch was man eventuell in der aliases rein hauen muss.

      Ach eins noch und wie muß ich das einstellen das alles was irgend wie Sever mäßig zu tuen hat also h14 trlala nach rz-xxxxxx.de umgeleitet wird. Alle auch root sollen zur rz-xxxxxx.de umgeleitet werden damit ich alles was dem Server an geht unter admin@rz-xxxxx.de bekomme.

      Ich bedanke mich für da zu hören ;)
      UPS ich meinte das ich hier meine Server Mail sorgen los werden kann.

      lg
      Stefan

      • Grüße,
        so es geht jetzt alles so wie ich es haben möchte.

        In der main.conf habe ich das jetzt so geändert.
        mydestination = mail.rz-xxxxxxx.de, mail.h141xxxxx.stratoserver.net, mail.localhost

        Die aliases habe ich jetzt so am laufen.

        # See man 5 aliases for format
        mailer-daemon: postmaster
        postmaster: root
        nobody: root
        hostmaster: root
        usenet: root
        news: root
        webmaster: root
        www: root
        ftp: root
        abuse: root
        noc: root
        security: root
        root: admin@rz-xxxxxxx.de

        Und natürlich hatte ich nicht an newaliases gedacht, das sollte man machen wenn man da ran rum spielt :)

        lg
        Stefan

  • Hey,
    danke erstmal für die Anleistung selbst.
    Ich habe ein kleines Problem mit deinem Webmum-Interface. Dieses funktioniert soweit problemlos, nur wenn ich es nicht mehr auf dem Port 80 laufen lasse, sondern auf irgrndeinem anderen, beispielsweise 3000 (webmum.mydomain.tld:3000/index.php), werden die CSS Dateien nicht mehr implementiert und das Einloggen usw. funktioniert auch nicht mehr.
    Irgendwelche Vorschläge?

  • Hey, ich habe nach dieser Anleitung 2 Mailserver aufgesetzt und wollte jetzt die Replikation konfigurieren. Doch schon bei dem Abruf der User stehe ich auf der Stelle.

    # doveadm user ‚*‘
    doveadm(root): Error: User listing returned failure
    doveadm(root): Fatal: user listing failed

    Danke schon mal fürs lesen =)

    Gruß Maik

  • Herzlichen Dank!

  • Hi, danke erst einmal für dieses ausführliche Tutorial (ich hab es sogar ohne viel Linux-Kenntnisse verstanden :P )!
    Bei mir gibt es nur ein Problem (jedenfalls ist es hoffentlich das einzige) : wenn ich den postfix Service reloaden möchte, bekomme ich folgende Fehlermeldung: „postfix: fatal: /etc/postfix/main.cf, line 30-39: missing ‚=‘ after attribute name: „submission inet n – – – – smtpd -v -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject““. Die Zeile habe ich direkt so aus dem Tutorial kopiert, aber anscheinend ist sie entweder nicht mehr aktuell oder es hat sich ein winzig kleiner Fehler eingeschlichen (kann ja jedem mal passieren ;) ). Vielen Dank schonmal für die Hilfe!

    Gruß Benjamin

    • Hi Benjamin,

      ich meinem Beitrag konnte ich keinen Fehler finden. Es ist ja die Rede von einem fehlenden Gleichheitszeichen. Auch in dem Paste von dir konnte ich nichts finden (außer der kaputten Formatierung). Am besten siehst du in den Zeilen vor und nach diesem Abschnitt mal nach, ob dort etwas fehlt oder zu viel ist. Leere Zeilen mag Postfix glaube ich auch nicht.

      LG Thomas

      • Hi Thomas,

        ich habe gerade den Fehler gefunden, er lag bei mir: ich habe nicht gesehen, dass die Zeile mit „Submission inet“ in die master.cf und nicht die main.cf gehört. Danke dennoch für den Hilfeversuch ;)

        LG Benjamin

  • Hi,

    ich habe nach deiner Anleitung schon länger einen Mailserver am laufen, dieser ist für mehrere Domains zuständig. Jetzt habe ich frisch eine Domain mit einem Umlaut(sieht ca. so aus Das-Ist-eine-Domäne.de) im Namen dazu bekommen. Habe auch mal in diesem Zusammenhang mit webmum gespielt. Domain hinzugefügt, User angelegt, User kann sich dann auch bei webmum anmelden. Das war es dann aber auch schon :(. Wenn ich versuche mich über RoundCube einzuloggen wir die Domain richtig in den logs angezeigt, also im punycode. Beim versuch mich mitttels eines Mailclients zu verbinden wird der Umlaut in der Domain zu zwei Fragezeichen umgewandelt. Dort scheint die umwandlung zu punycode nicht zu funktionieren(Apple Mail Client). Jemand eine Idee woran das liegen kann?

    Danke schon mal

    • Ich habe es hinbekommen. Man muss die Domain wohl einfach in punycode speichern. Dann kann ich mich anmelden.

  • Hallo,
    ein Frage ist %u@%d oder %s die Logindaten oder die Senderinformationen?
    und der Result query dann andersrum die möglichen Senderinfomationen oder die Logindaten?

    Kurz: möchte gern ein Query entwickeln mit anderen Logindaten als Senderdaten (ähnlich den Alias)und dabei den Absender richtig überprüfen.

  • Heey
    Kann ich mir Postfix bzw dovecot eine Mailing list erstellen?
    bzw. bequem über das Webinterface postfixadmin?

  • Hallo,
    wo muss ich den PTR-Eintrag setzten und wie ?
    Direkt bei meinem Domainregistrar ?
    MfG Middi

  • Ich habs beim Hoster mittlerweile hinbekommen, aber ich hab ja eine Subdomain mail.middicomhd.de und damit läuft der MX-Eintrag. Muss der rDNS-Eintrag auf die Subdomain oder einfach nur auf middicomhd.de?
    MfG Middi

  • Hi,

    ich habe mir meinen Mailserver vor langem mal nach dieser Anleitung eingerichtet. Vielen Dank noch mal dafür!

    Inzwischen habe ich mehrere Domains darauf laufen. Und dies bringt Zertifikats Probleme mit sich….
    Wie ist es möglich mehrere Zertifikate für die verschiedenen Domains zu nutzen?

    Viele Grüße und Dank basti

    • Hi,

      Dovecot kannst du leider nur unter einer Imap-Domain betreiben. D.h. du würdest dann zwar die Domains dom1.tld, dom2.tld und dom3.tld nutzen, aber im Mailclient nur imap.domain1.tld angeben. FUnktioniert genauso gut – ist halt nicht so schön. Es kann leider nicht jede Domain ihre eigene imap-Subdomain bekommen, weil man mit Dovecot ja nur 1 TLS-Zertifikat nutzen kann. Ich meine, dass auch Postfix nur 1 Zertifikat unterstützt.

      • Ok sehr schade.
        Gibt es da andere Alternativen?

        • Außer Dovecot auf mehreren getrennten Ubuntu-Servern zu nutzen, fällt mir gerade nichts ein. Gut – man könnte auch mehreren Dovecot-Instanzen in Container packen … aber das macht die Sache kompliziert. Lege doch einfach eine Domain für deine Mailserver fest – und über die verbinden sich dann die Mailclients, ganz egal, welcher Mailaccount unter welcher Domain genutzt wird. Das ist die einfachste Lösung.

  • Viel Dank für die tolle Anleitung.

  • Hallo,

    hab ein problem mit dem abschliessenden Einrichten.

    Habe alles so gemacht wie beschrieben. nur bekomme ich immer diese Fehlermeldungen:

    /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: mtpd_banner=$myhostname ESMTP $mail_name (Ubuntu)
    /usr/sbin/postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions

  • Hallo,

    Ich kann mittels Thunderbird keine Verbindung herstellen. Hab alles genau so gemacht, wie Du es beschrieben hast.

    Ich verzweifle langsam… Die MX Records und DNS habe ich angepasst.

  • Hi
    Hab deine tutorial abgearbeitet und versuche nun Roundcube auf dem Server zu installieren.
    Abschließend muss man bei der Installation IMAP und SMPT Einstellungen überprüfen. Dabei scheitertets bei mir immer.
    unter IMAP Host trage ich mail.domain.de bzw direkt die IP adresse des Mailservers ein (Port 143) (nur bei letzterem klappt der Verbindung) doch was als Username bzw Passwort? vmail und vmailpasswort? Und was trage ich unter SMTP user/password ein?

    Das einzige was mail.log zu bieten hat ist folgendes:
    Mar 13 14:57:41 Ubuntu-1404-trusty-64-minimal postfix/error[16835]: F0D7746098C: to=, orig_to=, relay=none, delay=118060, delays=118059/0.4/0/0.09, dsn=4.4.1, status=deferred (connect to Ubuntu-1404-trusty-64-minimal.localdomain[private/dovecot-lmtp]: No such file or directory)

    • Hi Lukas,

      Benutzername und Passwort brauchst du nicht einzutragen. Diese Daten werden individuell für jeden Benutzer abgefragt, wenn er sich einloggt. Dem Log nach scheint mit deiner Mailzustellung auch etwas nicht zu stimmen. Kontrolliere in der Postfix-Konfig nochmal, ob der virtual_transport Teil stimmt und bei Dovecot, ob die Services korrekt konfiguriert sind.

      LG Thomas

  • Hallo Thomas

    Wieso landen meine Mails bei Anbieter (Google, Hotmail, GMX usw…) immer im Spam Ordner?

    Danke dir für eine Antwort.

    Gruss

    Flavio

    • Hi Flavio,

      damit deine E-Mails bei anderen Providern (vor allem bekannten Massen-Providern) nicht im Spam landen (bzw weniger oft) sollten folgende Punkte erfüllt sein:

      – Mailserver muss eine statische IP-Adresse besitzen
      – IP-Adresse darf nicht aus dem DSL-Raum stammen
      – Mailserver muss einen Hostnamen haben (auch bekannt im DNS)
      – PTR Record muss vorhanden sein und auf diesen Hostnamen verweisen
      – SPF Record sollte vorhanden sein
      – DKIM kann nicht schaden
      – Optional sogar noch zusätzlich DMARC
      (- Und natürlich sollte man sich mit der IP-Adresse auf keiner der bekannten Mailserver-Blacklists befinden)

      Ausführlicher werde ich auf die Thematik in meiner nächsten Mailserver-Anleitung eingehen. Microsofts’s E-Mail Dienste lassen sich nur sehr sehr schwer dazu überreden, Mails von kleinen Servern nicht als Spam zu klassifizieren. Bei denen geht es auch um das Mailvolumen… wenn man nur einen kleinen Server hat, der nicht viel sendet, zeigt einem M$ den Mittelfinger. :(

      LG Thomas

  • Nabend, danke für das tolle Tutorial. Leider funktioniert bei mir komischerweise nicht richtig. Ich kann E-Mail nicht senden bzw. ich empfange keine E-Mail. Laut Log kommt folgende Error:

    Apr 1 21:26:03 xxx postfix/trivial-rewrite[2729]: warning: virtual_alias_domains lookup failure
    Apr 1 21:26:03 xxx postfix/trivial-rewrite[2729]: warning: mysql:/etc/postfix/virtual/mysql-aliases.cf: table lookup problem

    Es ist genau alles von Tutorial Schritt für Schritt gemacht worden. Also keine Veränderung (bis auf SSL von Let’s Encrypt und DB Passwort).

  • Die hier beschriebene Vorgehensweise klappt 1:1 auch unter Ubuntu 16.04. Beim ersten Anlauf ist irgendwas falsch gelaufen (möglich dass ich mal was in die master.cf eingetragen habe, das in die main.cf gehört hätte oder umgekehrt, oder irgendwo ein # nicht entfernt habe).

    Beim neuen Anlauf heute Nacht war bei mir anschließend sendmail als MTA aktiv (sicher selbstverschuldet, weil ich das mal zum Mailen in PHP eingerichtet hatte), trotz reload, restart von postfix/dovecot und … und stop von sendmail, etc. hielt sich das hartnäckig.

    Die Lösung bestand im Neustart des Servers. Anschließend gingen Empfang und Versand problemlos (getestet mit Kmail und Thunderbird). Natürlich ist’s denkbar, dass in 16.04 noch Bugs beteiligt waren, umso erfreulicher, dass es jetzt läuft.

    Danke für diese ausführliche Anleitung.


Comments are closed.