foxcpp / foxcpp/maddy

Dynamic message blob path support

Ouverte
#520 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
new feature
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.