Dynamic message blob path support
- Langage dominant
- Go
- Étoiles
- 6.1k
- Forks
- 327
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
# Use case
I'm evaluating maddy for my personal mailserver. I've loved the simplicity and great number of features related to a modern mailserver setup ! Even for personal mailserver its common to have thousand of emails on each mailbox. In my case I have a quite long historic os my mail (almost 20 years) so it's common to have thousand of emails on a folder.
# What problem you are trying to solve?
My primary reason to have my own mailserver is privacy thinking that way the considered setup store all the information on my infrastructure. I've chosen to use imap storage blob and discovered that all msg files no matter the account, domain or imap folder are stored on the same directory.
My thought is that it will lead do performance problems because I easily going to have thousand of files on the same directory it's not good for any filesystem. Additionally, in system administration perspective, not having a way to split messages by domain and/or accounts will make tasks like copying, moving and managing this harder.
Note alternatives you considered and why they are not useful.
# Your idea for a solution
Having config options to allow split messages in different directories for domains, accounts and even imap folders would be great.
How your solution would work in general?
We can have a new config option that allow some kind of format specifications (printf % like) to define the way the message path would be expanded.
For example:
msg_path_format: %d/%a/%f
where:
d -> domain name
a -> email account name
f -> imap folder name
I've started to look at the code and still not sure that all these options are possible, but I would like to discuss and willing to do the PR :-)
- [x] I'm willing to help with the implementation
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par localiser la configuration du stockage de blobs IMAP et le code qui construit les chemins des messages ; l’issue ne nomme aucun fichier ni test spécifique. Examinez comment les valeurs de domaine, de compte et de dossier sont représentées, puis définissez le comportement de la configuration et les tests nécessaires pour vérifier que les messages sont stockés dans la structure de répertoires demandée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- go
- Domaine
- backend
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 30/100