La version 0.0.15 du projet Mox, qui développe une solution complète pour le fonctionnement des serveurs de messagerie, a été publiée. Elle comprend tous les composants nécessaires pour l'envoi et la réception d'e-mails. Des implémentations personnalisées des serveurs SMTP et IMAP4, un système de filtrage de contenu indésirable ainsi que des interfaces web pour les administrateurs et les utilisateurs sont proposées. Le code du projet est écrit en langage Go et est distribué sous licence MIT.
L'objectif du projet est de créer une solution « tout-en-un » permettant de déployer facilement un serveur de messagerie opérationnel sans configuration fastidieuse et sans nécessité d'interconnexion entre divers services et applications distincts. Il est prévu que les complications lors du déploiement et de la maintenance des services de messagerie serveurs amènent les consommateurs à privilégier des fournisseurs de services email centralisés, sapant ainsi l'idée même de la messagerie électronique en tant que service décentralisé constitué de nombreux serveurs de messagerie personnels.
Mox permet de configurer un serveur de messagerie sécurisé pour ses domaines en 10 minutes, supportant la pile de protocoles modernes et ne nécessitant pas d'installations de dépendances supplémentaires. La mise à jour des logiciels sur le serveur de messagerie se résume à télécharger la nouvelle version de mox et à redémarrer. La réception et la mise à jour des certificats TLS s'effectuent automatiquement. Pour la configuration et l'exécution des tâches liées à la maintenance, une interface web peut être utilisée, et pour une configuration avancée, un fichier de configuration est fourni.
Pour éviter les problèmes de sécurité résultant du travail à bas niveau avec la mémoire, le langage Go est utilisé dans le développement. Pour maintenir une haute qualité de la base de code, des tests manuels et automatisés de compatibilité avec les serveurs de messagerie et les clients populaires, des tests unitaires et de fuzzing, ainsi qu'une documentation exhaustive du code sont appliqués.
Les principales fonctionnalités de Mox :
- Support des protocoles SMTP et IMAP4.
- Utilisation des extensions SPF, DKIM et DMARC pour l'identification des domaines de messagerie, la vérification des autorisations d'envoi et l'authentification des messages.
- Suivi de la réputation des hôtes, des domaines et des expéditeurs. Utilisation de classificateurs bayésiens, de listes noires DNSBL et de listes grises pour filtrer les messages indésirables.
- Prise en charge des extensions pour l'utilisation d'Unicode et des alphabets nationaux dans les noms de domaine.
- Obtention automatique de certificats TLS auprès des autorités de certification prenant en charge le protocole ACME, comme Let's Encrypt.
- Prise en charge des mécanismes DANE et MTA-STS pour le chiffrement des envois entrants et sortants sur SMTP avec l'extension STARTTLS.
- Webmail intégré pour lire et envoyer des e-mails via un navigateur.
- Interface web d'administration intégrée pour gérer les domaines et comptes, configurer SPF/DKIM/DMARC/TLSRPT/MTA-STS, visualiser les statistiques et modifier les paramètres du fichier de configuration.
- Présence d'un serveur http pour la livraison de fichiers statiques et le redirection des demandes (reverse proxy).
- Fourniture d'une API HTTP/JSON pour l'envoi/téléchargement d'e-mails et la réception des événements liés à la livraison.
- Exportation des métriques pour le système de monitoring Prometheus.
- Prise en charge des extensions pour la configuration automatique des clients de messagerie (DNS SRV, https://autoconfig.domaine, QR code).
Parmi les changements dans la nouvelle version :
- Prise en charge des extensions IMAP ajoutées :
- NOTIFY (RFC 5465) pour suivre l'apparition de messages,
- UIDONLY (RFC 9586) pour demander des messages par UID afin de réduire la charge sur le serveur.
- MULTISEARCH (RFC 7203) pour la recherche dans les boîtes aux lettres,
- PREVIEW (RFC 8970) pour un aperçu rapide des messages,
- REPLACE (RFC 8508) pour remplacer le contenu dans les brouillons de messages,
- MULTIAPPEND (RFC 3502) pour ajouter plusieurs messages à la fois,
- METADATA (RFC 5464) pour le stockage de métadonnées,
- INPROGRESS (RFC 9585) pour transmettre des informations sur l'état d'exécution des opérations longues,
- NAMESPACE (RFC 2342) pour définir les espaces de noms des boîtes aux lettres,
- WITHIN (RFC 5032) pour la recherche sur des intervalles de temps,
- CREATE-SPECIAL-USE (RFC 6154) pour créer des boîtes aux lettres spécialisées, telles que "Boîte de réception" et "Envoyés",
- SAVEDATE (RFC 8514) pour suivre le moment où le message a été enregistré dans la boîte aux lettres.
- Ajout d'une configuration pour traiter les séparateurs « + » et « - » dans les adresses e-mail (you+anything@example.com et you-anything@example.com).
- Ajout d'une configuration pour interdire le changement de mot de passe (génération automatique d'un mot de passe sécurisé uniquement).
- Ajout d'une configuration pour rejeter les livraisons entrantes en cas d'erreurs dans la transaction SMTP.
- Dans Webmail, ajout d'un bouton pour télécharger le message au format eml ou mbox/maildir dans des archives zip/tgz/tar, ainsi que de boutons pour marquer la boîte aux lettres comme lue et créer des boîtes aux lettres supplémentaires.
Source : opennet.ru
