Mailserver unter Ubuntu installieren

veröffentlicht am 23. Mai 2010

Vor kurzem fragte mich Jeffrey per ICQ, wie ich meinen Mailserver aufgesetzt habe und erinnerte mich daran, dass ich doch endlich eine Anleitung darüber schreiben wollte. Im Rahmen dieser Anleitung werde ich einen Mail-Server auf Basis von Postfix und Dovecot aufsetzen, wobei natürlich ein großer Wert auf die Sicherheit gelegt wird (wir wollen ja keine Spamschleuder ins Internet stellen). Die einzelnen Benutzer müssen hierbei als Systemnutzer eingerichtet werden.

Diese Anleitung ist veraltet. Bitte schaue dir den Artikel Sicheren Mailserver unter Ubuntu installieren (in weniger als 5 Minuten) an.

Ich werde den Mailserver so konfigurieren, dass sämtliche Verbindungen verschlüsselt ablaufen und die Dienste nur über eine Authentifizierung genutzt werden können. Trotzdem müssen natürlich immer die neusten Updates eingespielt werden, um etwaige Sicherheitslücken auszumerzen. Ein falsch eingerichteter Mailserver kann schnell zur Spamschleuder werden und das kann für den Betreiber teuer werden.

Vorweg muss noch gesagt werden, dass ich diese Anleitung auf Basis von Ubuntu erstellt habe. Es könnte also sein, dass sich die Paketnamen bei anderen Linux-Distributionen unterscheiden. Ich empfehle außerdem, sich vorher die komplette Anleitung einmal durchzulesen, bevor man die Anleitung umsetzt. Die hier geschilderte Anleitung basiert auf meinen eigenen Erfahrungen, eine vollkommene Sicherheit garantiere ich nicht. Wer sich mit der Materie nicht auskennt, sollte sich lieber eine E-Mail-Adresse bei einem professionellen Anbieter besorgen, um Kosten durch unsachgemäße Nutzung des Servers zu vermeiden.

Benutzer einrichten

Zunächst einmal muss ein Benutzer eingerichtet werden, der als Administrator des Mailservers fungiert. In meinem Fall ist dies der Benutzer patrick, welcher seine E-Mails über patrick@techspread.de empfängt. Der Benutzer bekommt ansonsten keine Rechte auf dem System. Mit den folgenden Befehlen werden übrigens auch andere normale Benutzer angelegt:

useradd -d /home/<Benutzername> -m -s /bin/false <Benutzername>
passwd <Benutzername>

In meinem Fall wäre das zum Beispiel:

useradd -d /home/patrick -m -s /bin/false patrick
passwd patrick

Den angelegten Nutzer sollte man sich nun merken, er wird gleich gebraucht :)

Installation der Pakete

Fangen wir erst einmal mit der Installation aller wichtigen Pakete an:

aptitude install postfix sasl2-bin mailx dovecot-common dovecot-imapd

Grundkonfiguration von Postfix

Bei der Installation von Postfix werden bereits ein paar Daten abgefragt. Hierbei müssen folgende Einstellungen getroffen werden:

General type of configuration:
Internet Site

Where should mail for root go:
// Hier den eben angelegten Benutzer oder eine gültige E-Mail-Adresse eintragen
// (z.B. patrick oder patrick@techspread.de)

Mailname:
// Hier muss die gewünschte Domain eingetragen werden
// (z.B. techspread.de)

Local Networks:
127.0.0.0/8
//(Mails dürfen ohne Authentifizierung nur von dem Server selbst verschickt werden)

Sollte man sich bei der Konfiguration einmal vertan haben, kann man die Prozedur ganz einfach per

dpkg-reconfigure postfix

wiederholen. Nach der Konfiguration sollte man postfix einmal (neu)starten:

/etc/init.d/postfix restart

Der Server sollte nun schon E-Mails verschicken können. Um das zu testen, gibt man folgenden Befehl ein:

echo Dies ist ein Test | mail -s "Testnachricht" <E-Mail-Adresse>

Wobei <E-Mail-Adresse> natürlich durch eine abrufbare E-Mail-Adresse ersetzt werden muss.

Aliase setzen

Jetzt sollten erst einmal zwei Aliase gesetzt werden, die laut Protokollstandard (RFC) erforderlich sind. Die Aliase dienen dazu, eine E-Mail-Adresse über verschiedene Namen erreichbar zu machen. Laut RFC muss je ein Alias für root und postmaster gesetzt werden. Erstelle bzw. bearbeite dazu die Datei /etc/aliases und füge folgende Zeilen ein:

root:       <Benutzername>
postmaster: <Benutzername>

Als Benutzername trägst du den eben angelegten Benutzer ein. Die E-Mails des Benutzers solltest du auf jeden Fall regelmäßig abrufen, da auf diese E-Mail-Adresse auftretende Fehlermeldungen und eventuelle Anfragen geschickt werden. Danach müssen die Aliase noch bekannt gegeben werden:

newaliases

Postfix-Authentifizierung einrichten

Es ist zwingend notwendig, eine Postfix-Authentifizierung zu verlangen, wenn man einen Mailserver im Internet betreibt. Richtet man keine Authentifizierung ein, kann der Server als so genanntes offenes Mail-Relay missbraucht werden. Kriminelle könnten den Server ohne Authentifizierung dann z.B. zum Verschicken von Spam-Mails oder Malware benutzen.

Zunächst müssen folgende Werte in der Datei /etc/default/saslauthd angepasst werden:

START=yes
MECHANISMS="shadow"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Danach erstellst du die Datei /etc/postfix/sasl/smtpd.conf mit folgendem Inhalt:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
saslauthd_path: /var/run/saslauthd/mux

Zur Datei /etc/postfix/main.cf müssen dann noch folgende Einträge hinzugefügt werden:

smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
mailbox_command = /usr/lib/dovecot/deliver

Zum Schluss muss Postfix noch in die SASL-Gruppe aufgenommen werden:

adduser postfix sasl

Nach einem Neustart des SASL-Dienstes und Postfix, ist die Authentifizierung eingerichtet:

/etc/init.d/saslauthd restart
/etc/init.d/postfix restart

Postfix-Verbindungen verschlüsseln

Wer einen Mailserver im Internet betreibt sollte eine Verschlüsselung der SMTP-Verbindungen einrichten. Im Folgenden zeige ich, wie man das vorinstallierte Dummy-Zertifikat nutzt. Wer einen größeren (kommerziellen) Mailserver betreiben möchte, sollte sich allerdings ein Zertifikat von einer respektierten Zertifizierungsstelle besorgen.

Die Einrichtung der Verschlüsselung ist schnell erledigt. Füge einfach die folgenden Zeilen zur Datei /etc/postfix/main.cf hinzu:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may

Dovecot einrichten

Bisher haben wir nur Postfix konfiguriert, welcher für das Verschicken und das Zustellen von E-Mails zuständig ist. Jetzt brauchen wir noch einen Dienst, der uns unsere Postfächer bereitstellt. Das erledigt Dovecot für uns. Die Konfiguration ist dabei schnell erledigt. Öffne die Datei /etc/dovecot/dovecot.conf und passe folgende Einträge an:

protocols = imaps
ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
mail_location = dbox:%h/dbox

Dann muss auch hier nochmal „der Verantwortliche“ eingetragen werden (bei entsprechenden Zeilen die Kommentare entfernen und den Eintrag ergänzen):

protocol lda {
  postmaster_address = <E-Mail>
}

Jetzt noch einmal kurz Dovecot neustarten und der Server ist fertig eingerichtet:

/etc/init.d/dovecot restart

Sicherheit testen

Am Anfang habe ich ja schonmal kurz das Problem der offenen Mail-Relays angesprochen. Um sicherzugehen, dass dein Server kein offenes Mail-Relay darstellt, bedienen wir uns der MXToolbox. Auf dieser Seite kannst du diverse Tests gegen deinen Mailserver fahren lassen. So kann z.B. generell erst einmal festgestellt werden, ob dein Mailserver erreichbar ist oder ob dein Mailserver auf einer so genannten Blacklist steht. Was uns nun aber am meisten Interessiert ist die Prüfung auf ein offenes Mail-Relay. Gebe dazu in das Suchfeld folgendes ein:

smtp:<Domain>

In meinem Fall müsste man also

smtp:techspread.de

eingeben. Dort solltest du ein ähnliches Ergebnis bekommen, sonst läuft etwas falsch:

(Weiterführende) Quellen

Dovecot und Postfix bieten noch wesentlich mehr Optionen als die hier vorgestellten an. Viele weitere Informationen bekommt ihr deshalb auf den folgenden Seiten:

Kommentare

Vielen Dank für die Arbeit die du dir mit der Anleitung gemacht hast.

Werde das ganze mal ausprobieren und berichten :)

Gruß
Marius

Kommentar #1 von Marius am 25. Mai 2010


Ich bin jetzt nicht sicher wo das Problem liegt, aber gerade habe ich eine Mail bekommen (Kommentar-Benachrichtigung wollte eine Mail an dich senden):

: host techspread.de[78.47.40.xy] said: 530
5.7.0 Must issue a STARTTLS command first (in reply to MAIL FROM command)
Final-Recipient: rfc822; patrick@techspread.de
Action: failed
Status: 5.7.0
Remote-MTA: dns; techspread.de
Diagnostic-Code: smtp; 530 5.7.0 Must issue a STARTTLS command first

Ist nur zur Info. Kannst den Kommentar auch löschen ;)

Kommentar #2 von Maxim am 25. Mai 2010


Argh… dann muss ich das oben auch anpassen, hab da viel am Wochenende dran gespielt :P

Dein Server kann mir die Mail nicht zukommen lassen, weil er sich mit TLS verbinden soll… Nun weiß ich auch, warum ich die letzten Tage auch kein Spam mehr bekomme habe :D

Kommentar #3 von Patrick am 25. Mai 2010


So Artikel ist angepasst, hatte einen kleinen Hinweis bei einer meiner Quellen überlesen :)

Nun muss man evtl. selber darauf achten, dass man beim Client STARTTLS aktiviert. Mit der vorherigen Konfig wurde man dazu gezwungen.

Das Problem war nur, dass mein Server auch E-Mails von anderen Servern abgelehnt hat, die kein STARTTLS unterstützen.

Aber nun sollte wie gesagt alles laufen ;)

Kommentar #4 von Patrick am 25. Mai 2010


Jetzt darfst du wieder Viagra-Angebote aussortieren :D

Kommentar #5 von Maxim am 25. Mai 2010


Achjoa… das hält sich bei mir in Grenzen… Vielleicht sollte ich mal Spamassasin und Greylisting einbinden… das wäre dann auch als Erweiterung für diesen Artikel gut.

Kommentar #6 von Patrick am 25. Mai 2010


@Marius: Inzwischen getestet?

Kommentar #7 von Patrick am 27. Juni 2010


Heute habe ich eine Anleitung geschrieben, wie man diesen Mailserver noch mit einem Spam- und Virenfilter ausstattet: http://www.patrick-gotthard.de/4227/postfix-mit-spamfilter-spamassassin-und-virenfilter-clamav

Kommentar #8 von Patrick am 20. Juli 2010


Wie verbinde ich mich nun mit meinem Clienten auf den IMAP-Server? Als Postausgang wurde bei mir automatisch smtp.domain.tld erstellt, das funktioniert auch. Allerdings komme ich nicht auf den Posteingang…
Bei mir erscheint dovecot auf mysteriöse Weise nicht in /etc/init.d. Hat jemand eine Idee, woran das liegen könnte?

Danke für das Tutorial!

Kommentar #9 von kTn am 04. Dezember 2010


@kTn: Hast du auch Ubuntu? Sonst kann ich mir das mit dem fehlenden Eintrag unter init.d nicht erklären – oder bei der Installation ist was schiefgelaufen.

„smtp.domain.tld“ soll das stellvertretend für deine echte Domain sein, oder steht das wirklich so dort? Dann hast du wahrscheinlich komplett was falsch gemacht. Dein Posteingang ist nach dieser Anleitung per IMAPS erreichbar, da musst du ggf. das SSL-Zertifikat akzeptieren.

Ich würde sagen, lies dir die weiterführenden Quellen einmal durch, dann weisst du auch genau, was du da tust ;)

Kommentar #10 von Patrick am 04. Dezember 2010


Ich kann bei der PostFix Konfiguration nicht auswählen ? :O

Kommentar #11 von Michael am 23. Dezember 2010


@michael: Was kannst du nicht auswählen? :)

Kommentar #12 von Patrick am 23. Dezember 2010


dieses was bei der konfiguration kommt, wo man internet site auswhälen soll.

Kommentar #13 von Michael am 24. Dezember 2010


dieses ok dort :D

Kommentar #14 von Michael am 24. Dezember 2010


klasse anleitung. trotzdem stehe ich irgendwie auf dem schlauch. alles gemacht wie es da steht ,aber ich bekomme es nicht hin mich mit outlook zu verbinden und mails abzuholen bzw zu schicken

bei mir steht in der mail.log
warning: SASL: connect to /usr/lib/postfix/smtpd failed: No such file or directory
fatal: no SASL authentication mechanismus

hast du irgendeinen rat für mich wo der fehler ist ???

gruß frank

Kommentar #15 von Frank am 08. Januar 2011


@Frank: Wenn ich deine Fehlermeldung bei Google eingebe, bekommt man schon ein paar Suchresultate. Am wahrscheinlichsten kommt mir vor, dass dein SASL-Daemon nicht gestartet ist.

Tippe mal

/etc/init.d/saslauthd start

ein und starte dann auch den Postfix neu. Eventuell wird dein SASL-Daemon nicht automatisch mitgestartet, siehe hier.

Kommentar #16 von Patrick am 08. Januar 2011


saslauthd läuft …. aber trotzdem kommt die fehlermeldung und im outlook bekomme ich den fehler „socketfehler 10061 fehlernummer: 0x800CCC0E“

hmm irgendwie hab ich keinen durchblick mehr :D

Kommentar #17 von frank am 09. Januar 2011


Hmm sorry, dann kann ich dir so nicht weiterhelfen. Am besten suchst du mal weiter nach der Fehlermeldung oder wendest dich z.B. an das UbuntuUsers-Forum, die können einem immer sehr schnell helfen.

Kommentar #18 von Patrick am 09. Januar 2011


Danke für die Anleitung, war super einfach und funktioniert alles 1a
Gruß aus dem Norden,
Mounty

Kommentar #19 von Mounty am 14. Januar 2011


Hallo,

danke für das tolle Tutorial.

Aber wie kann man jetzt mit Outlook die Mails abholen bzw. versenden?

Was soll man denn als Pop3-Server verwenden?

Ich habe pop3.meinedomain.de verwendet – funzt nicht – dann smtp.meinedomain.de – geht auch nicht?

Pop3: pop3.meinedomain.de oder smtp.meinedomain.de
SMTP: smtp.meinedomain.de

Weiterhin habe ich natürlich den User angelegt – aber versuche ich mich jetzt über SSH als diesen User anzumelden, werde ich sofort wieder ausgeloggt und erhalte die Meldung

„permitted by applicable law.
You have new mail.“

aber wie gesagt – ich bin sofort wieder „Not connected“

Irgendwie verstehe ich das alles nicht recht.

Grübel.

Gruß Matthias

Kommentar #20 von Matthias am 17. Januar 2011


Auweia Matthias, bist du dir sicher, dass du einen öffentlichen Mailserver betreiben willst? Mir scheint, du hast kaum Ahnung, was du da tust :D

Ist nicht böse gemeint, ich hab aber schon oben geschrieben, warum man sich etwas auskennen sollte. Der User soll beabsichtigt kein SSH-Zugriff bekommen, deshalb bekommt er /bin/false als Shell zugewiesen. Sonst würde jeder Mailuser auch SSH-Zugriff auf dein System bekommen.

Versuche es außerdem mal nur mit meinedomain.de, pop3 und andere Subdomains greifen nur, wenn du diese auch in deinem DNS-Server einträgst. Sicherlich hast du das so versucht, da große Mailbetreiber das so machen.

Kommentar #21 von Patrick am 17. Januar 2011


Hallo Patrick,

ja – ich bin noch absoluter Noob. Aber man muss ja irgendwann mal anfangen. Andere User bekommen keinen Mailaccount auf meinem Server.

Über mutt kann ich Mails versenden und emfangen – über Outlook klappt jetzt schonmal der Emfang aber das Senden nicht.

„Es kann keine Verbindung zum Mailausgangsserver hergestellt werden“

Auch mit Squirrelmail kann ich keine Mails verschicken.

Fehlermeldung:
„Connection refused -111 Can’t open SMTP stream.“

Grübel

Gruß Matthias

Kommentar #22 von Matthias am 17. Januar 2011


Ich habe die Anleitung noch um den Eintrag

mailbox_command = /usr/lib/dovecot/deliver

erweitert, da E-Mails sonst ab Ubuntu 10.04 LTS nicht mehr zugestellt werden können.

Kommentar #23 von Patrick am 28. Februar 2011


Hey danke für die Einleitung Sie war super.
nur ich habe das Problem das ich Email´s versenden kann aber keine Empfangen. Da kann ich noch so oft auf senden empfangen drücken.
Bitte um Hilfe:)
danke im vorraus

Kommentar #24 von Braun am 28. Februar 2011


Wann hast du die Anleitung umgesetzt? Ich habe heute erst die Anpassung der main.cfg in dem Artikel aktualisiert, da Ubuntu 10.04 oder höher eine separate Angabe des Befehles zum Zustellen der E-Mails benötigt.

Die entsprechende Anpassung findest du einen Kommentar vor dir. Was genau bekommst du denn für einen Fehler, wenn du E-Mails abrufen willst? Keine Verbindung? Einfach keine E-Mails (dann kann es gut sein, dass die entsprechende Anpassung fehlt)?

Kommentar #25 von Patrick am 28. Februar 2011


Gute Fehlerquellen findet man übrigens unter /var/log/mail.info oder /var/log/mail.error.

Kommentar #26 von Patrick am 28. Februar 2011


Hey ich habe deine Einstellungen bzw die Konfiguration vor einer stunde gemacht.

Aus den Log dateien werde ich leider nicht schlau….

ICh habe mich mit Outlook 2010 verbunden. versenden von Email klappt einwand frei, wenn ich auf senden7empfangen klicke, bekomme ich auch keine Fehlermeldung.
Ich habe von mehrer Email adressen mir eine Mail zuschicken lassen.

Dann bekomme ich diese Fehlermeldung wenn ich mir selber was schicken will:

This is the mail system at host artur.der-braun.de.

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

: local configuration error

Kommentar #27 von Braun am 28. Februar 2011


Feb 28 21:17:34 artur postfix/smtpd[1392]: connect from XXXXXX:XXXXXX:XXXXXX[XXX.XXX.XXX.X]
Feb 28 21:17:34 artur postfix/smtpd[1392]: 7228838E102C: client=mail-clear.XXX.de[XXX.XXX.XXX.X]
Feb 28 21:17:34 artur postfix/cleanup[1398]: 7228838E102C: message-id=
Feb 28 21:17:34 artur postfix/qmgr[31900]: 7228838E102C: from=, size=3871, nrcpt=1 (queue active)
Feb 28 21:17:34 artur deliver(braun): Fatal: postmaster_address setting not given
Feb 28 21:17:34 artur postfix/local[1399]: 7228838E102C: to=, relay=local, delay=0.14, delays=0.12/0.01/0/0.01, dsn=5.3.5, status=bounced (local configuration error)
Feb 28 21:17:34 artur postfix/cleanup[1398]: 8DDBF38E102E: message-id=
Feb 28 21:17:34 artur postfix/bounce[1401]: 7228838E102C: sender non-delivery notification: 8DDBF38E102E
Feb 28 21:17:34 artur postfix/qmgr[31900]: 8DDBF38E102E: from=, size=5657, nrcpt=1 (queue active)
Feb 28 21:17:34 artur postfix/qmgr[31900]: 7228838E102C: removed
Feb 28 21:17:35 artur postfix/smtpd[1392]: disconnect from XXXXXX.XXXXX.XX[XXX.XXX.XXX.X]
Feb 28 21:17:35 artur postfix/smtp[1402]: 8DDBF38E102E: to=, relay=mail-clear.XXX.de[XXX.XXX.XXX.X]:25, delay=1.1, delays=0.01/0/0.27/0.82, dsn=2.0.0, status=sent (250 2.0.0 p1SLHYge008052 Message accepted for delivery)
Feb 28 21:17:35 artur postfix/qmgr[31900]: 8DDBF38E102E: removed

Ich hoffe das hilft weiter….

Kommentar #28 von Braun am 28. Februar 2011


Feb 28 23:04:16 artur deliver(braun): Fatal: postmaster_address setting not given

Dieser fehler taucht andauernd in mail.err

Kommentar #29 von Braun am 01. März 2011


Hey Braun,

schau mal, ob dir der der Beitrag von MichiGreat weiterhilft: http://forum.ubuntuusers.de/post/1294316/

Kommentar #30 von Patrick am 01. März 2011


Hallo Patrick,

Danke für Deine gelungene Anleitung. Allerdings musste ich noch folgende Zeilen in dovecot.conf hinzufügen:

protocol lda {
# Address to use when sending rejection mails.
postmaster_address = postmaster@example.net

# Hostname to use in various parts of sent mails, eg. in Message-Id.
# Default is the system’s real hostname.
hostname = example.net

# Support for dynamically loadable plugins. mail_plugins is a space separated
# list of plugins to load.
#mail_plugins = quota
mail_plugin_dir = /usr/lib/dovecot/modules/lda

# Binary to use for sending mails.
sendmail_path = /usr/lib/sendmail

# UNIX socket path to master authentication server to find users.
auth_socket_path = /var/run/dovecot/auth-master

# Enabling Sieve plugin for server-side mail filtering
#mail_plugins = cmusieve
}

VG Hans

Kommentar #31 von Hans am 11. März 2011


Hallo,
Ich habe nun meinen Mailserver nach deinem Tutorial eingerichtet, habe nun jedoch ein Problem.

Wenn ich versuche von meiner anderen Email-Adresse aus eine Email an den neuen Server zu schicken, bekomme ich die Mail aus folgendem Grund zurück:

Remote host said: 554 5.7.1 : Relay access denied [RCPT_TO]

Wie schaffe ich es, dass der Server des Providers meinen Mailserver akzeptiert? Oder liegt das Problem woanders?

Mit freundlichen Grüßen

Kommentar #32 von Jan am 22. März 2011


Von welchem Server kommt diese Meldung? Von deinem eigenen oder von dem Mailserver des Empfängers?

Kommentar #33 von Patrick am 22. März 2011


Okay, das versenden klappt nun, musste die Domain einfach nur in der postfix-Konfiguration eintragen.

Jetzt habe ich jedoch das Problem, dass ich zwar per „mail“ die Emails auf dem Server (via SSH) lesen kann, sie jedoch nicht in meinem IMAP-Posteingang in Outlook erscheinen. Die Verbindung funktionert, das Senden von Nachrichten auch, aber der Posteingang bleibt leer. Warum?

Kommentar #34 von Jan am 22. März 2011


Hmm da bin ich im Moment überfragt, da ich mit dieser Konfig einwandfrei auch Outlook nutzen kann. Schau mal nach, ob du die E-Mails mit Thunderbird sehen kannst… Wenn das Prostfach auch dort leer ist, dann ist irgendwas falsch eingerichtet :)

Kommentar #35 von Patrick am 22. März 2011


Hallo,
Auch in Thunderbird werden die Nachrichten nicht angezeigt. Ich weiß jedoch, dass sie auf dem Server sind, und auch, dass sie dem richtigen Benutzer zugeordnet sind, da ich sie ja wie gesagt mit „mail“ sehen kann.

Hast du eine Idee wo ich etwas falsch eingestellt haben könnte? Muss ja etwas mit dovecot zu tun haben, da die Mails ja richtig empfangen werden. :(

Kommentar #36 von Jan am 22. März 2011


Hast du vielleicht den Eintrag

mailbox_command = /usr/lib/dovecot/deliver

vergessen. Ich meine mal genau dasselbe Phänomen gehabt zu haben. In dem Fall werden die E-Mails von Postfix gehalten und nicht an Dovecot übergeben. Ansonsten sind die Log-Dateien, die mit „mail“ beginnend unter /var/log liegen recht hilfreich, falls es sich um einen Konfigurationsfehler handelt.

Welches Betriebssystem hast du denn genau am Laufen? Ich werde mit gleich mal ein Ubuntu-Testsystem installieren und das nochmal alles prüfen…

Kommentar #37 von Patrick am 22. März 2011


Hallo,
Der Eintrag fehlte tatsächlich, jedoch bleibt meine Inbox auch nachdem ich ihn geändert habe leer. (Dienste wurden allesamt neu gestartet).

Betriebssystem ist Ubuntu 10.04.
Die Logdateien sagen mir folgendes:

Mar 22 20:39:00 h1875264 postfix/local[13632]: 43CFD1E4C66A: to=, relay=local, delay=0.22, delays=0.21/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)

Und dovecote nimmt auch meine Logins via IMAP wahr, liefert mir jedoch nicht meine Mails.

Also hakt es irgendwo zwischen Empfang der Email und Weitergabe an bzw. Abholen von dovecot. :(

Kommentar #38 von Jan am 22. März 2011


Schick dir mal eine neue E-Mail, es kann sein, dass die „alten“ E-Mails garnicht oder erst nach einer Zeit zugestellt werden.

Kommentar #39 von Patrick am 22. März 2011


Habe mir schon mehrmals Emails geschickt, welche auch jedes mal von postfix in meine mailbox gelegt wurden (angeblich).
Dort sehe ich sie zwar nach wie vor per SSH, jedoch nicht in meinem Email-Client per IMAP.
Könnte es über POP3 vielleicht klappen? Aber eigentlich sollte es ja auch mit IMAP keine Probleme geben…

Oder benutze ich gar einen falschen user? Eigentlich sollte doch der Systembenutzer (Ich nenne ihn einfach mal so)
erwin die Emails, die an die Adresse erwin@example.org geschickt werden in seiner mailbox haben, oder?

Kommentar #40 von Jan am 22. März 2011


Schau mal, ob unter /home/erwin ein Ordner namens dbox existiert. Das ist der Ordner, in dem Dovecot die E-Mails ablegt. Du kannst mit mail noch die E-Mails lesen, da mail die E-Mails aus dem so genannten Spooler liest. Wenn diese dort verharren, werden die E-Mails nicht an Dovecot weitergeleitet. Ich setze gleich ein Testsystem auf und überprüfe nochmal alle Einstellungen.

Kommentar #41 von Patrick am 22. März 2011


Ja, der Ordner /home/erwin/dbox existiert und ist auch für dovecot zugänglich (Das denke ich jedenfalls, ls -l gibt mir
„drwxrwx— 3 erwin users 4096 2011-03-22 20:20 dbox“
, also sollte das klappen.
ich habe leider keine Ahnung woran es noch liegen könnte. :(

Kommentar #42 von Jan am 22. März 2011


Gerade entdeckt:
in /home/erwin ist auch die Datei „mbox“, in welcher anscheinend alle Emails gespeichert sind, welche ich an die Adresse bisher geschickt habe. Also schiebt postfix sie einfach nur in die falsche Datei?

Kommentar #43 von Jan am 22. März 2011


Dann hast du mit Sicherheit Dovecot eine Zeit lang mit

mail_location = dbox:%h/dbox

gestartet gehabt. Hmm… ich würde sagen, dann stell die Mail-Location wieder auf das mbox-Format um, starte Dovecot neu, sichere die E-Mails (geht z.B. gut mit Thunderbird), stelle dann wieder auf dbox um und starte den Server neu. Allerdings wundert mich, dass auch neue E-Mails nicht angezeigt werden und beide Ordner existieren. Irgendwas sollte er dann zumindest anzeigen :D

Kommentar #44 von Patrick am 22. März 2011


Wie stelle ich das ganze denn um?
Einfach „dbox“ durch „mbox“ ersetzen?
(„mail_location = mbox:%h/mbox“)

Wenn ja, dann meldet Outlook mir beim Verbinden zum Server einen „SERVERBUG“

Fehler (0x800CCCD2) beim Ausführen der Aufgabe „Abonnierte Ordner für ‚erwin@example.com‘ werden synchronisiert“: „Von Outlook können keine abonnierten Ordner für erwin@example.com‚ synchronisiert werden. Fehler: Servermeldung: „SERVERBUG] Internal error occurred. Refer to server log for more information. [2011-03-22 21:36:45]

Sobald ich dann wieder auf dbox umstelle, bekomme ich keine Fehlermeldung mehr.

Kommentar #45 von Jan am 22. März 2011


Schau dich mal auf der Wiki-Seite von Dovecot um, ich hab das leider auch nicht alles im Kopf: http://wiki2.dovecot.org/MailboxFormat

Gerade habe ich das Grundsystem installiert, kann sich also nurnoch um Stunden handeln ;)

Kommentar #46 von Patrick am 22. März 2011


Also ich weiß jetzt wieso das ganze mit dbox nicht funktioniert hat. Postfix unterstützt das dbox-Format einfach nicht.
Aber auch nach der Umstellung auf mbox funktioniert es noch nicht, weil dann oben genannter Fehler von Outlook kommt und folgende Meldung in den Logs steht:

Mar 22 22:03:39 h1875264 dovecot: IMAP(erwin): open() failed with subscription file /home/erwin/mbox/.subscriptions: Not a directory

Kommentar #47 von Jan am 22. März 2011


Postfix muss dbox auch nicht unterstützen, das macht Dovecot ja ;)

Genau dieses Setup (mit dbox) habe ich seit über einem Jahr auf meinem Server laufen, ich prüfe nur gerade, ob ich irgendwo einen Schritt vergessen habe zu dokumentieren.

Kommentar #48 von Patrick am 22. März 2011


Oh wow, es funktioniert! :D
Der Fehler war, wie vorhin vermutet, die mail_location!

Hier die Einstellung mit der es funktioniert:

„mail_location = mbox:~/mail:INBOX=/var/mail/%u“

Und schon kann ich mir meine Emails via IMAP holen. :)
Ich danke dir für deine geduldige Hilfe, und vielleicht solltest du die Anleitung entsprechend anpassen.

Dankeschön!

Kommentar #49 von Jan am 22. März 2011


@Jan: Ich habe die Zeilen

protocol lda {
  postmaster_address = E-Mail des Administrators
}

leider oben in der Anleitung vergessen und nun ergänzt. Habe die Anleitung eben nochmal 1:1 auf einem Testsystem getestet, läuft mit diesen Zeilen einwandfrei.

Kommentar #50 von Patrick am 22. März 2011


@Jan: Nein daran lag es nicht. Jetzt hast du einfach das Standard-Format (mbox) von Postfix und den Spooler-Ordner (/var/mail) als Quelle angegeben.

Nun zieht sich Dovecot die E-Mails einfach aus diesem Ordner. Das bestätigt, dass die E-Mails nicht richtig an Dovecot übergeben wurden… Das läuft so zwar, aber dbox soll laut Hersteller bessere Performance leisten. Außerdem finde ich die Sicherung über /home besser – ist aber Geschmackssache.

Update) Postfix kann wie du gesagt hast kein dbox-Format, aber es läuft eigentlich so ab:
– Postfix bekommt die E-Mail zugestellt
– Die E-Mail wird an Dovecot (genauer gesagt deliver) übergeben
– Dovecot speichert die E-Mail an dem angegebenen Ort in dem gewünschten Format

Wie bereits gesagt: genau diese Config läuft auf meinem Server seit über einem Jahr und ich hatte bisher keinerlei Probleme.

Kommentar #51 von Patrick am 22. März 2011


Hallo,
Also der Mailserver tut jetzt alles was er soll, nur die Meldung von Outlook dass mit dem zertifikat etwas nicht stimmt ist etwas nervig, aber da lässt sich wohl nichts gegen machen.

Wenn ich allerdings, wie du weiter oben geschrieben hast, die postmaster_address setze, so verweigert der Server den Start,

Error: Error in configuration file /etc/dovecot/dovecot.conf line 750: Unknown setting: postmaster_address
Fatal: Invalid configuration in /etc/dovecot/dovecot.conf

Was ist daran nun falsch? Adresse ist postmaster@meinedomain.eu. Wieso funktioniert das nun nicht?

Kommentar #52 von Jan am 23. März 2011


UPDATE:
Ich bin doof, habe natürlich vergessen, dass „protocol lda {“ auskommentiert ist. Habe es nun berichtigt, und jetzt funktioniert auch alles. ;)

Allerdings war das nicht die Fehlerquelle von gestern, aber da dort nun auch alles funktioniert werde ich nichts mehr ändern. ;)

Wie heißt es so schön? Never touch a running system.

Kommentar #53 von Jan am 23. März 2011


Hast du das auch in dem entsprechenden protocol lda-Abschnitt konfiguriert? Wenn du das ganz an das Ende setzt, bekommst du natürlich einen Fehler.

Das mit dem Zertifikat liegt daran, da das ein selbstsigniertes Zertifikat ist. Wenn du die Warnung wegbekommen möchtest, musst du entweder auf das unverschlüsselte IMAP ausweichen, oder dir ein Zertifikat bei einer anerkannten CA kaufen. Alternativ (wenn nur du den Mailserver benutzt) kannst du das Zertifikat auch importieren.

Kommentar #54 von Patrick am 23. März 2011


Ja, ich hab’s im ensprechenden Abschnitt konfiguriert, der Fehler war da Auskommentierte. ;)

Ich bin mittlerweile zu POP3 übergegangen, wie kann ich dort denn eine unverschlüsselte Verbindung einstellen?

Kommentar #55 von Jan am 23. März 2011


Bei protocols muss auf jeden Fal auch pop3 aktiviert sein und dann im Client (Outlook) halt sagen, dass Standard POP3 verwendet werden soll. Kannst natürlich auch einfach POP3S (heisst das überhaupt so? :D) abschalten. Ich wundere mich gerade, dass dein Dovecot POP3 ausliefert, oder hast du das entsprechende Paket von Dovecot installiert? Aber mal ehrlich… da hat man schon einen schönen Mailserver und dann POP3 nutzen… :D

Kommentar #56 von Patrick am 23. März 2011


Ja, pop3 habe ich aktiviert (Habe das entsprechende Paket nachinstalliert, ganz alleine! *stolz bin*). Okay, also einfach pop3s (Ja, heißt so ;)) aus der Liste nehmen, ja? Dann steht dort:

protocols = imap imaps pop3

IMAP lasse ich drin, falls ich es mir anders überlege. Schadet ja wohl nicht.

Aber nachdem ich nun pop3s rausgenommen habe, kann ich mich nichtmehr anmelden (via POP3):

Antwort des Servers: -ERR Plaintext authentication disallowed on non-secure (SSL/TL

Woran liegt das nun?

Naja, ich bin eben an POP3 gewöhnt, ich bekomme über IMAP anscheinend nichtmal eine EMail gelöscht. :(

Kommentar #57 von Jan am 23. März 2011


Du musst den POP3-Account neu hinzufügen, aber nicht vergessen, davor deine E-Mails zu sichern (die sind nämlich bei POP3 weg, wen du die nicht lokal sicherst oder den Client entsprechend konfigurierst). Dein Outlook ist ja nun auf POP3S eingestellt, das muss auf das normale POP3 umgestellt werden.

Kommentar #58 von Patrick am 23. März 2011


Umgestellt hatte ich das schon, funktioniert aber trotzdem nicht, mein Passwort wird nicht angenommen, der Eingabe-Dialog erscheint einfach immer wieder, bis ich auf Abbrechen klicke.

Emails sichern muss ich nicht, der Account ist, wenn überhaupt EMails da sind, nur vollgestopft mit Testnachrichten ;)

Kommentar #59 von Jan am 23. März 2011


Hmmm… sorry mit POP3 kenne ich mich dann zu wenig aus bei Dovecot. Wenn bisher eh nur Testmails drauf sind, dann versuch doch lieber nochmal, IMAP eingerichtet zu bekommen ;)

Kommentar #60 von Patrick am 23. März 2011


Okay ;)

IMAP ist ja eingerichtet und funktioniert auch tadellos, nur irritiert es mich das ich keine EMails löschen kann.
(Habe noch nie IMAP benutzt, vielleicht ist das ja normal?)

Aber auch dort hätte ich dann das Problem mit dem Zertifikat. :(

Kommentar #61 von Jan am 23. März 2011


Also eigentlich sollte E-Mails löschen genauso gehen, wie sonst auch mit POP3 ;) Also ich kann diesen Server hier wunderbar mit Thunderbird und Outlook 2010 nutzen. Kann es sein, dass du Outlook Express verwendest? Dann musst du eventuell noch was am Server einstellen, einfach mal googlen oder in den oben verlinkten Artikeln stöbern.

Kommentar #62 von Patrick am 23. März 2011


Nein, ich benutze Outlook 2010 ;)

Die E-Mails werden zwar durchgestrichen, jedoch sind sie dann ja immer noch da. Endgültig löschen geht also nicht?

Und: Kann ich den IMAP-Posteingang irgendwie in den normalen Posteingang integrieren? Zwei separate Eingänge sind mir nicht gerade sympathisch. :(

Kommentar #63 von Jan am 23. März 2011


Achso, die werden durchgestrichen… ja deshalb nutze ich Outlook auch ungerne, da muss man sehr viel einrichten, bevor man IMAP komfortabel nutzen kann. Du musst irgendwo in den Einstellungen sagen, dass E-Mails wirklich gelöscht und nicht nur als gelöscht markiert werden sollen. Dass du einen separaten Posteingang im Posteingang hast, kann ich mir gerade nicht erklären…

Kommentar #64 von Patrick am 23. März 2011


Ich habe keinen Posteingang im Posteingang, ich habe einen neuen… „Ordner“ (In Ermangelung eines besseren Namens). Wenn ich darauf klicke, sehe ich folgendes:

„Der Ordner kann nicht angezeigt werden. Dies ist der Stamm eines IMAP-Speichers. […]“

Der Posteingang ist ein Unterordner dieses Ordners.
Ich hätte nun gerne nicht diesen Unterordner, sondern würde die E-Mails vom IMAP-Server zusammen mit denen von meinen anderen E-Mail-Adressen (POP3) in einem Posteingang haben. Ist das überhaupt möglich?

Kommentar #65 von Jan am 23. März 2011


Uff keine Ahnung, was Outlook da so hergibt, ich bin eher der Thunderbird-Nutzer ;)

Das schöne an IMAP ist ja, dass du auch Unterordner erstellen kannst, in die du E-Mails z.B. thematisch einordnen kannst.

Kommentar #66 von Patrick am 23. März 2011


Ich habe eben im Ubuntu Server Guide gelesen, dass es das Paket postfix-dovecot gibt, welches wohl die ganze Einrichtung oben automatisiert :D

Ich werde das wenn ich Zeit habe mal testen, wäre schon extrem komfortabel, einfach dieses Paket zu installieren, SSL-Schlüssel austauschen und fertig ;)

Kommentar #67 von Patrick am 23. März 2011


Oh man, das rockt:

aptitude install dovecot-postfix
postconf -e 'home_mailbox = Maildir/'
/etc/init.d/postfix restart
/etc/init.d/dovecot restart

und fertig ist die Lauge :)

Kommentar #68 von Patrick am 24. März 2011


Na super. :D

Aber okay, jetzt kann ich wenigstens von mir behaupten das ich erfolgreich einen Mailserver aufgesetzt habe!

Ich danke dir nochmal viemals für deine geduldige und ausführliche Hilfe! :)

Kommentar #69 von Jan am 24. März 2011


Ich habe nun einen neuen Artikel veröffentlicht, der die Installation des Mailservers wesentlich vereinfacht: http://www.patrick-gotthard.de/6905/sicheren-mailserver-unter-ubuntu-installieren-in-weniger-als-5-minuten

Kommentar #70 von Patrick am 24. März 2011


Hallo Patrick!

Nachdem die neuere Anleitung zusammen mit vielen anderen Anleitungen im Netz nicht so richtig wollten, viel sie wohl zum Teil auch mittlerweile veraltet sind, bin ich froh, dass mein Mailserver nun endlich rennt.

Aber auch deine Anleitung könnte im Dovecotbereich aktualisiert werden, da dovecot statt einer nun mehrere config-Dateien verwendet. Was mir jedoch keine großes Schwierigkeiten bereitet hat, da sie schon recht passend benannt sind und die Suchfunktion ohnehin der beste Freund sein sollte.

Vielen vielen Dank für die Anleitung und meinen Respekt für das schöne Webdesign deiner Seite ;)

Kommentar #71 von Matthias am 24. August 2012


Dein Link oben zur Spamassasin -Installation inkl. ClamAV verweißt leider nicht auf den Artikel ;)
Vielleicht kannst das anpassen für die zukünftigen Besucher :)

Kommentar #72 von DerSchmauder am 19. September 2014


Hinterlasse einen Kommentar