PDA

Bekijk Volledige Versie : Dovecot automatisch mappen laten aanmaken, bij ontvangen van email



asusk7m550
31/07/10, 18:02
Eigenlijk heb ik een heel kort vraagje, maar ik kan het niet vinden op het internet.

Ik heb een dovecot server draaien welke zijn email ontvangt via postfix. Het beheer van de gebruikers gaat via een MySQL database op een aparte server.

Alles werkt naar wens behalve 1 probleem.

Ik kan netjes een gebruiker toevoegen via de MySQL database. Deze gebruiker kan dan ook inloggen via POP3/IMAP etc. Als deze gebruiker inlogt wordt de maildir automatisch aangemaakt en kan daar de email op afgeleverd worden.

Maar als deze gebruiker nog niet heeft ingelogd, is het voor postfix niet mogelijk om email af te leveren aan dovecot. De map van de gebruiker, waar de maildir in gemaakt wordt bestaat nog niet (en wordt ook niet gemaakt). Zodra de gebruiker 1x heeft inlogt via POP3/IMAP etc wordt de map aangemaakt (door dovecot) en kan de gebruiker email ontvangen.

Nu kan ik wel in het script, wat de gebruiker toevoegt aan de database, een functie toevoegen welke 1x inlogt op de server. Maar dat doe ik liever niet.

Mijn vraag is dus: Weet iemand een mogelijkheid waarbij dovecot de maildir aanmaakt, als een gebruiker een email ontvangt via postfix.

Ik ben benieuwd of iemand eerder tegen dit probleem is aangelopen.

Mikey
31/07/10, 20:31
Wil je dat we blind gaan schieten op je probleem ? Ik mis namelijk een aardige onderbouwing hoe en wat je ingesteld hebt.

Jouw probleem zit in mail_location (http://wiki2.dovecot.org/MailLocation)

asusk7m550
31/07/10, 20:40
Je hoeft niet blind te schieten.

Zoals ik al gezegd had werkt alles naar behoren inclusief de werking van Maildir. Als ik het niet goed heb uitgelegd hoor ik dat graag.

Ik gebruik de dovecat/postfix configuratie met virtual users. De mail_location is als volgt ingesteld:

mail_location = maildir:/srv/vmail/%d/%u

Ik weet goed wat ik doe, en het heeft volgens mij niet zoveel zin om alle instellingen na te lopen. Ik was benieuwd of iemand ooit van dit probleem heeft gehoord. Of dat het iets is wat ik alleen tegen kom.

Mikey
31/07/10, 21:37
en het heeft volgens mij niet zoveel zin om alle instellingen na te lopen.

Prima......

mikeh
31/07/10, 22:54
Weet je ook wat die %d en %u doen ? ;)

asusk7m550
31/07/10, 23:22
Ja zeker, %d staat voor het gedeelte achter de @ en %u is het gedeelte voor de @ (in het emailadres).

Mocht het emailadres voornaam.achternaam@domeinnaam.nl zijn. Dan wordt dat omgezet naar /srv/vmail/domeinnaam.nl/voornaam.achternaam.

Op het moment dat een gebruiker inlogt via POP3 of IMAP wordt er standaard een Maildir in deze directory aangemaakt. Dat gaat dus zonder problemen.

dreamhost_nl
01/08/10, 07:56
Misschien een idee om direct één maal in te loggen als de gebruiker is toegevoegd in de MySQL database? Dat is toch niet zo heel moeilijk te automatiseren?

fastrep
01/08/10, 10:48
Ik denk dat je redenering een beetje fout zit. Je wil niet dat dovecot de maildir aanmaakt, want hoe kan deze nu weten wanneer postfix een mail aflevert in die maildir. Het is postfix die de maildir zou moeten aanmaken.
Dus je moet eerder bij postfix gaan nakijken wat er mis gaat, want zoals ik het mij herinner uit mijn postfix-tijd maakt postfix die maildir normaal wel aan. Misschien heeft de postfix-user geen schrijfrechten op de directory. Of is het de dubbele directory die je wil aanmaken (%d/%u) wat postfix in de war brengt.
Volgens mij, als je in je script de directory ineens aanmaakt, met de juiste rechten, zal postfix hier wel een maildir in aanmaken. Dat lijkt me iets netter dan inloggen als die gebruiker in je script.

Marin
01/08/10, 13:09
Correct, Postfix maakt de maildir aan bij het ontvangen van het eerste mailtje. Als een user bij ons een mailbox aanmaakt, stuurt ons controlpanel een "welkom-mailtje" puur voor het aanmaken van de box.

Daar wil ik wel bij vermelden dat Postfix niet de "top level" maildir aanmaakt, maar puur de maildir zelf. Rest moet je even met een scriptje doen..

En anders kun je altijd nog het "maildirmake" commando gebruiken.