1.3.3 Userformat an Dovecot übergeben
Nachdem wir Postfix gesagt haben dass wir die EMails in virtuelle Postfächer zugestellt bekommen wollen und Postfix auch mitgeteilt haben wo sich die Ordner dafür befinden und welche Nutzer das genau sind, muß das genauso nocheinmal für die andere Seite getan werden, für Dovecot. Dazu müssen wir das Dovecot Konfigurationsfile anpassen welches für die EMails zuständig ist /etc/dovecot/conf.d/10-mail.conf
:
mail_location = maildir:/var/mail/vhosts/%d/%n
Auch die Art und Weise der Authentifizierung muß entsprechend angepasst werden:
passdb { driver = passwd-file args = username_format=%u /etc/dovecot/users } userdb { driver = static args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n }
Nun müssen wir Dovecot noch sagen nach welchem Schema die Passwörter verschlüsselt sind:
#!include auth-system.conf.ext !include auth-passwdfile.conf.ext
Zum Schluß nicht vergessen Dovecot neu zu starten:
root@fliegerhost:/# service dovecot restart
Test: Anmeldung an Dovecot und INBOX checken
Für diesen Test senden wir wieder eine EMail von einem externen Account zu unserem Server. Wir schauen dann ob die INBOX von Dovecot diese EMail enthält. Ausgehend davon dass wir unseren Telnet Client von unserem Windows PC nutzen geben wir folgendes ein (von dem Windows PC ist der Server momentan leider nur über seine IP-Adresse erreichbar):
C:\Users\Nutzername> telnet 192.168.2.1 imap * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN] Dovecot (Debian) ready. a1 Login scotty@fliegerhorst.dyndns.org password a1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE] Logged in a2 list "" "*" * LIST (\HasNoChildren) "." INBOX a2 OK List completed (0.005 + 8.920 + 8.923 secs). a3 examine INBOX * FLAGS (\Answered \Flagged \Deleted \Seen \Draft $Forwarded Junk) * OK [PERMANENTFLAGS ()] Read-only mailbox. * 65 EXISTS * 1 RECENT * OK [UNSEEN 65] First unseen. * OK [UIDVALIDITY 1612115650] UIDs valid * OK [UIDNEXT 5862] Predicted next UID * OK [HIGHESTMODSEQ 17786] Highest a3 OK [READ-ONLY] Examine completed (0.005 + 9.386 + 9.390 secs). a4 fetch 1 body[] * 1 FETCH (BODY (("text" "plain" ("charset" "UTF-8") NIL NIL "8bit" 1274 30)("text" "html" ("boundary" "mimepart_5e5c86fb26ce8_566a311c79dc44a" "charset" "UTF-8") NIL NIL "quoted-printable" 3049 89) "alternative")) a4 OK Fetch completed (0.006 + 7.474 + 0.005 secs). a5 logout * BYE Logging out a5 OK Logout completed (0.001 + 4.363 + 4.362 secs). Verbindung zu Host verloren. C:\Users\Nutzername>
Wie man sieht braucht man gar keinen IMAP Client, denn mit Telnet geht das ganz wunderbar wenn man die IMAP Kommandos kennt. Nein, kleiner Scherz…. Aber hier noch eine kleine Befehlsreferenz für einen IMAP Server:
- User anmelden:
a1 login name@eigener-server.de passwort123
- Postfächer ansehen mit
a2 list "" "*"
- Zum Postfach wechseln:
a3 examine inbox
- Email ansehen:
a4 fetch 1 body[]
- abmelden mit
a5 logout