Dovecot: E-Mail-Clients und duplizierte Ordner

Dovecot: E-Mail-Clients und duplizierte Ordner

Auf meinem Server stoße ich also normalerweise auf ein Problem: Verschiedene E-Mail-Clients benennen einige spezielle Ordner mit Sentunterschiedlichen TrashNamen wie Sent Itemsund Deleted Items.

Meine Frage lautet: Kann ich all diese Namen irgendwie mit einem „Alias“ versehen und sie intern demselben SentOrdner auf dem Server zuordnen?

dovecot.confIch habe es geschafft, meine Include-Abschnitte wie folgt zu ändern :

mailbox Sent {
    special_use = \Sent
    auto=subscribe
}

mailbox "Sent Messages" {
    special_use = \Sent
}

mailbox "Sent Items" {
    special_use = \Sent
}

Ist das der richtige Weg, dieses lästige Problem zu „beheben“? Es scheint zu funktionieren, zumindest gibt es keine Duplikate auf dem Server, aber einige E-Mail-Clients wählen möglicherweise alle Ordner als Duplikate aus.

Danke schön.

Antwort1

Du kannst den ... benutzenPostfach-Alias-Pluginerfordert Dovecot 2.1.10+, das symbolische Links auf Dateisystemebene erstellt, um einem Verzeichnis mehr als einen Namen zu geben. Die beiden Verzeichnisse haben den gleichen Inhalt.

Beispielkonfiguration mitGesendetUndMüllsind die echten Postfächer für die Aliase "Gesendete Objekte" und "Gelöschte Objekte":

mail_plugins = $mail_plugins mailbox_alias
plugin {
  mailbox_alias_old = Trash
  mailbox_alias_new = Deleted Items
  mailbox_alias_old2 = Sent
  mailbox_alias_new2 = Sent Items
}

Vergessen Sie nicht, die Postfächer zu erstellen:

namespace inbox {
  mailbox Sent {
    auto = create # or subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = create
    special_use = \Trash
  }
}

Die andere Möglichkeit ist, zwei verschiedene Postfächer zu erstellen, wie Sie erwähnt haben. Ich habe einen Teil davon kopiertconf.d/15-mailboxes.conf

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}

Mit dieser Methode haben Sie zwei verschiedene Postfächer für gesendete Nachrichten. Wenn der Benutzer eines davon löscht, bleibt das andere unverändert bestehen.

Antwort2

Es ist nicht nötig, das Plugin zu verwenden. Gehen Sie in Ihr vmail-Verzeichnis, Beispiel:

cd /var/vmail/example.com/exampleUser/ 

Wenn Sie dann beispielsweise möchten, dass alle in dem "Sent Messages"Ordner gespeicherten Nachrichten stattdessen in diesem Ordner gespeichert werden "Sent", verschieben Sie im ersten Schritt einfach die Dateien von "Sent Messages"dort "Sent"über Ihren Client.

Entfernen Sie dann im /var/vmail/example.com/exampleUser/mailOrdner den "Sent Messages"versteckten Ordner:

rm -r /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

Bevor Sie eine weitere E-Mail senden, fügen Sie einen symbolischen Link zum versteckten Ordner hinzu "Sent"( "Sent Messages"lange Zeile hier, gehen Sie beim Kopieren und Einfügen vorsichtig vor):

ln -s /var/vmail/example.com/exampleUser/mail/.Sent /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

"Sent Items"Das sollte problemlos funktionieren. Wiederholen Sie einfach den gleichen Vorgang, wenn Sie den Ordner oder "Mail Sent"einen anderen Ordner mit diesem symbolisch verknüpfen möchten "Sent"oder wenn Sie eine andere Lösung mit anderen Ordnern wünschen, die auf andere Ordner verweisen, und die E-Mails nur in einem davon aufbewahren möchten.

"INBOX"Wenn Sie Dovecot und den Client als Ordner verwenden möchten "Sent", sollten Sie den symbolischen Link vom Mail-Ordner mit dem Benutzernamen erstellen (wieder eine lange Zeile):

ln -s /var/vmail/example.com/exampleUser/mail/ /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

es sei denn, Sie haben es nicht geändert. Bearbeiten Sie dann die /etc/dovecot/conf.d/15-mailboxes.confZeilen:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}

oder ein anderes Äquivalent, um sie wie folgt umzuwandeln:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox INBOX {
    special_use = \Sent
  }
  mailbox INBOX {
    special_use = \Sent
  }
}

Wie Sie sehen, sind jetzt zwei gleich, Sie können also einfach einen löschen:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.

  mailbox INBOX {
    special_use = \Sent
  }
}

Dann sollte es einwandfrei funktionieren. Ich habe diesen Vorgang durchgeführt, weil ich wollte, dass meine gesendeten E-Mails sowohl von meinem Laptop als auch von meinem Telefon in meinem Posteingangsordner sind. Der Dovecot-Hack war für den Laptop ausreichend, aber das Telefon verwendete weiterhin den "Sent Messages"Ordner, sodass ich den Symlink-Trick anwenden musste. Seien Sie sehr vorsichtig bei der Auswahl des richtigen "Sent"oder "Sent Messages"was auch immer für einen Ordner, zu dem und von dem der Symlink erstellt werden soll!

Ich vermute, das Plugin erstellt einfach selbst einen symbolischen Link, sodass Sie nur ähnliche Dinge erstellen. Mit dieser Technik können Sie alle gewünschten Ordner zusammenführen und die Arbeit Ihrer Clients unverändert beibehalten. :-)

verwandte Informationen