# Migration von Courier zu Dovecot -> kleine Fehler/Fragen



## Hirbod (19. März 2014)

Liebe Community,

ich habe gestern auf meinem Livesystem Courier gekillt und Dovecot auf Debian Wheezy installiert.

Ich habe dabei alle folgenden Punkte befolgt:
HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials - View Single Post - Changing mail software?

und
https://github.com/cubetech/sysadmin.courier-to-dovecot

Die Migration hat super funktioniert, es sind soweit keine Fehler untergelaufen. Allerdings waren die Subscriptions danach falsch. Es wurde auch ein Redownload gestartet. Das liegt wohl daran, dass das Script leider die UIDs löscht. Hätte ich den offiziellen Weg wie hier beschrieben, wäre das wohl nicht passiert:

Migration/Courier - Dovecot Wiki

Jedenfalls wurden alle zusätzlichen Ordner nicht angezeigt und auch die ganzen Sent-Messages etc haben gefehlt. Nach einigem Suchen habe ich herausgefunden, das folgendes in die dovecot.conf muss:


```
mail_location = maildir:~/Maildir

namespace {
  prefix = INBOX.
  separator = .
  inbox = yes
}
```
Ich habe diesen Schnipsel einfach ans Dateiende von dovecot.conf gepackt, und Voila, alle Mails waren da. Da mir spätestens beim nächsten Update mit "reconfigure" diese Settings wieder flöten geht, wollte ich fragen, welche Möglichkeit besteht, das ganze auf dem Server so anzupassen, dass die alten Verzeichnisse ohne diese Namespace-Definition funktioniert.

Des Weiteren wird meine Einstellung aus ISPConfig "Spam E-Mails in den Junk Ordner zu verschieben" ignoriert - es landet alles in den Inbox. Bei Courier hatte diese Einstellung super funktioniert. 

Hat jemand eine Idee? Ich hatte testweise mal einen neuen Ordner angelegt, mit dem Namespace. Dieser wird dann im Mailordner als 

".Ordnername" angelegt. Sobald ich das oben genannte Snippet entfernt hatte, wurden die Verzeichnisse als ".INBOX.Ordnername" angelegt. (ja, wirklich, mit Namespace ohne .INBOX., ohne Namespace mit .INBOX.)

Ich hatte dann testweise die Verzeichnisse mal in .INBOX. umbenannt und das ganze hatte funktioniert, jedoch kann ich mir nicht vorstellen, das DOVECOT seine Ordner so benennt.

Kann mir jemand helfen bzgl der Subscriptions und dem Move to Junk Ordner?


Vielen Dank
Hirbod


----------



## Till (19. März 2014)

Wenn Dein Server ispconfig verwendet, dann ist dass hier der offizielle weg:

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials - View Single Post - Changing mail software?

Wichtig: Die einstellungen in ispconfig exakt so machen wie in der Anleitung beschrieben und vor allem auch in exakt der Reihenfolge die Schritte durchführen. Eine Änderung an der dovecot.conf ist nicht notwendig, sie führt zu Fehlfunktionen bis hin zum löschen und neu anlegen von maildirs, kann ich nur sehr davon abraten, da gab es schon datenverluste weil user die Anleitung aus dem Dovect wiki und nicht die offiziele ispconfig anleitung genommen haben. Dass die imap folder subscriptions mittels imap client geändert werden müssen ist richtig. Das was du da als prefix eingfügt hat führt faktisch zu einer rückwärtskonvertierung zu courier


----------



## Hirbod (19. März 2014)

Hi Till,

danke für deine Antwort. Wie bereits oben beschrieben, habe ich exakt diesen Weg vorgenommen. Es hat soweit auch alles geklappt, mit dem Punkt, das nur die Inbox da war. Der Rest jedoch nicht.

Sent war leer und alle meine angelegten Order auch. Es sieht so als, als würde Dovecot diese in der vmail Struktur mit ".INBOX" anlegen. (und ja, ich nutze ISPConfig)

Erst nachdem ich wie oben beschrieben den Hack eingebaut habe, wurden mir alle meine alten Folder angezeigt.

Wie bekomme ich die alten Ordner ohne den Hack sichtbar? Muss ich die Ordner in .INBOX umbenennen?

Und noch was:

```
SPAMDIR="Junk"
SPAMDIRFULL="$DEFAULT/.Junk"

if ( /^X-Spam-Flag: YES$/ )
{
  exception {

    `test -e $SPAMDIRFULL`
    if ( $RETURNCODE != 0 )
    {
      `maildirmake -f $SPAMDIR $DEFAULT`
      `chown vmail:vmail -R $SPAMDIRFULL`
      `chmod 0700 $SPAMDIRFULL`
      `echo INBOX.$SPAMDIR >> $DEFAULT/courierimapsubscribed`
    }
    to "$SPAMDIRFULL/"
  }
}
```
Wieso steht da noch was courierimapsubscribed, obwohl ich auf Dovecot gewechselt bin? Macht ISPConfig da was falsch? Ich habe alle Wege 100% exakt und sauber befolgt... und verloren wird nichts gehen, habe alles gesichert, auch den alten Courier-Stand.


----------



## Hirbod (19. März 2014)

Sieht so aus, als würde ISPConfig nach wie vor die alte "Mailfilter" Stuktur von courier zusätzlich mit anlegen, in den Verzeichnissen aber auch eine .sieve und dort steht folgendes:

require ["fileinto", "regex", "date", "relational", "vacation"];


# Move spam to spam folder
if header :contains "X-Spam-Flag" "YES" {
  fileinto "Junk";
  # Stop here so that we do not reply on spams
  stop;
}



keep;


SPAMs landen anscheinend nicht mehr in der Inbox, musste alle alten Accounts einmal neu abspeichern mit dem Flag aus und wieder an.. Jetzt muss ich den Rest nur noch verstehen, wegen .INBOX und nicht .INBOX. Ich wollte eine Lösung finden, damit meine Kunden ihre Mailclients nicht neu einstellen müssen..


EDIT:
Hab den Hack entfernt und den Account neu angelegt, und alle Mails sind da. Liegt also am Client, der nicht mit der Veränderung klarkommt.. Dann muss ich wohl meine Kunden anrufen und denen sagen, die müssen die Accounts neu anlegen... Shitte.


----------



## Hirbod (19. März 2014)

Hi, habe die Lösung. Man muss im Client den IMAP Prefix "INBOX" entfernen. Jetzt funktioniert auch alles ohne den Namespace..


----------



## Hirbod (19. März 2014)

An alle, die an einer besseren Lösung interessiert sind.

Unter /etc/docevot/conf.d/ einfach eine Config-Datei mit folgendem Inhalt anlegen:


```
namespace inbox {
  separator = /
  prefix =
  inbox = yes
}

namespace compat {
  separator = .
  prefix = INBOX.
  inbox = no
  hidden = yes
  list = no
  alias_for =
}
```
Damit verhindert man die "Rückportierung" aber liefert gleichzeitig die Abwärtskompatibilität. Das ist die perfekte Lösung!


----------



## hahni (5. Nov. 2015)

Zitat von Hirbod:


> Hi, habe die Lösung. Man muss im Client den IMAP Prefix "INBOX" entfernen. Jetzt funktioniert auch alles ohne den Namespace..


Wo wird denn der Prefix angelegt/überarbeitet? Das könnte evtl. auch mein Problem lösen...


----------



## florian030 (5. Nov. 2015)

http://wiki2.dovecot.org/Migration/Courier


----------



## hahni (10. Nov. 2015)

Bei einem Kunden ist das Thema immer noch aktuell bzw. nicht behoben. Der hat beispielsweise in seinem Maildir zwei Ordner:
- Gesendete Elemente
- INBOX.Gesendete Elemente
Also dachte ich, dass ich beide in die "subscribed"-Datei mit aufnehme. Genau das hat aber leider nicht so geklappt, wie ich mir das vorstellt hatte. Der Kunde behauptet noch immer, seine alten Ordner nicht zu sehen...


----------



## florian030 (10. Nov. 2015)

Hast Du überhaupt in var/vmail die beiden Ordner? Falls ja, ist bei der Migration etwas schiefgelaufen. Das Script passt eigentlich die Ordner-Struktur an.


----------



## hahni (10. Nov. 2015)

Also im /var/vmail/domain.tld/user/Maildir sind alle Sachen enthalten. Auch alle Ordner. Also die Standardordner und diese INBOX-Dinger. Aber ich könnte mir auch vorstellen, ihm die dort vorhandenen Mails einfach um zu kopieren. Es betrifft nur 2 Ordner mit Inhalten (Entwürfe und Gesendet). Ich glaube, dass er damit kein Problem hätte. Hauptsache, es funktioniert dann?!?


----------

