Secure Mail Gateway
À partir de Relution 26.4.0, le service autonome Secure Mail Gateway est un composant obligatoire lorsque la fonctionnalité SMG est utilisée. Cet article décrit la configuration pour les installations on-premise.
Pour la configuration de la Secure Mail Gateway dans Relution : Secure Mail Gateway →
Migration — Que faut-il faire ?
| Installation | Action requise |
|---|---|
| Relution Cloud – Shared Hosting | Aucune action requise. Relution gère la migration du service SMG. |
| Relution Cloud – Dedicated Server (clients existants) | Relution hébergera le service SMG. Une prise de contact aura lieu pour coordonner la migration. |
| Relution Cloud – Dedicated Server (nouveaux clients) | Le service SMG doit être opéré en tant que composant on-premise auto-hébergé. Suivre le guide de configuration plus bas dans cet article. |
| On-Premise | La procédure complète de configuration est décrite plus bas dans cet article. |
Feature toggle pour les installations on-premise (26.3)
Nouveau dans 26.3Dans Relution 26.3, les installations on-premise peuvent déjà activer le nouveau mode à l’avance. Ajouter le feature toggle SMG_STANDALONE dans le fichier application.yml du serveur Relution :
relution:
featuretoggle:
enabledPreviewFeatures:
- SMG_STANDALONE
Avec la version 26.4.0, le toggle est supprimé — le service autonome est alors actif sans configuration supplémentaire.
Configuration initiale
1. Créer un Dynamic Role
Télécharger le modèle de rôle prêt à l’emploi et l’importer dans l’organisation Global sous Paramètres > Gestion des utilisateurs > Permissions :
Télécharger le modèle de rôle SMG →
Il est également possible de créer le rôle manuellement :
- Naviguer vers Paramètres > Gestion des utilisateurs > Permissions dans l’organisation Global
- Ajouter un nouveau Dynamic Role
- Activer la permission Secure Mail Gateway (service account)
- Enregistrer le rôle
2. Créer un utilisateur technique et une clé d’accès API
- Créer un nouvel utilisateur dans l’organisation Global et lui attribuer le Dynamic Role créé ci-dessus
- Accéder à la page de détail de l’utilisateur et créer une nouvelle clé d’accès API
- Copier la clé générée — elle n’est affichée qu’une seule fois
3. Déployer le service
Ajouter le service suivant au compose.yml existant. Ceci n’est nécessaire que si la Secure Mail Gateway est utilisée.
latest. Les nouveaux builds passent par plusieurs niveaux de contrôle qualité avant d’être promus en latest — épingler un tag de version spécifique peut exposer à un build qui n’a pas encore été validé pour la production. smg:
image: relution/relution-smg-standalone:latest
restart: always
container_name: smg
networks:
- reverse-proxy
volumes:
- ./smg/application.yml:/opt/app/config/application.yml:ro
# - ./smg/ca-certs:/opt/app/ca-certs:ro # voir « Faire confiance à un certificat CA personnalisé » ci-dessous
# environment:
# - JAVA_TOOL_OPTIONS=... # voir « Proxy sortant de l'entreprise » ci-dessous
smg doit se trouver sur le réseau reverse-proxy, comme relution et traefik — sinon Traefik/nginx ne peut pas router vers ce service.Créer smg/application.yml à côté du compose.yml :
relution:
server:
url: https://votre-serveur-relution # URL de votre serveur Relution
api-key: votre-cle-api # Clé d'accès API créée ci-dessus
# honor-proxy-settings: true # voir « Proxy sortant de l'entreprise » ci-dessous
Démarrer ou redémarrer les services :
docker compose up -d
relution.smg.* dans la configuration du serveur Relution, les déplacer dans ce fichier sans modification — les noms des propriétés sont identiques.Configuration du proxy inverse
Le service SMG expose le point d’entrée /Microsoft-Server-ActiveSync sur le port 8093. Le proxy inverse doit acheminer toutes les requêtes pour ce chemin vers le service SMG — les exemples ci-dessous montrent comment procéder pour Traefik et nginx.
Traefik
Suivre la configuration Traefik → et ajouter un routeur supplémentaire pour le chemin SMG à côté du routeur relution existant :
http:
routers:
smg:
rule: Host(`external.url`) && Path(`/Microsoft-Server-ActiveSync`)
entryPoints:
- websecure
tls:
certResolver: letsencrypt
service: smg
services:
smg:
loadBalancer:
servers:
- url: "http://smg:8093"
nginx Alternative à Traefik
Ajouter le bloc de localisation suivant à la configuration nginx :
location ~ /Microsoft-Server-ActiveSync {
proxy_read_timeout 2100;
proxy_pass http://smg:8093;
}
smg désigne le nom du service Docker et est accessible au sein du réseau Docker. Pour une installation Linux native, remplacer smg:8093 par 127.0.0.1:8093.Faire confiance à un certificat CA personnalisé
Si Exchange présente un certificat signé par une CA interne ou auto-signée, monter un répertoire de fichiers de certificat encodés en PEM dans le conteneur, exactement à /opt/app/ca-certs :
volumes:
- ./smg/application.yml:/opt/app/config/application.yml:ro
- ./smg/ca-certs:/opt/app/ca-certs:ro
Ces certificats sont utilisés lors de la communication avec le serveur Exchange et Relution — aucune propriété de configuration n’est nécessaire. Si rien n’est monté, la fonctionnalité est sans effet et le TLS sortant se comporte comme avant. Ajouter, supprimer ou modifier un certificat nécessite de redémarrer le conteneur ; le répertoire n’est lu qu’une seule fois, au démarrage.
Proxy sortant de l’entreprise
Les requêtes vers Exchange respectent les propriétés système de proxy standard de la JVM. Les définir via JAVA_TOOL_OPTIONS :
environment:
- JAVA_TOOL_OPTIONS=-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=3128 -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=3128
Ajouter -Dhttp.nonProxyHosts (une liste de motifs d’hôtes séparés par |, les jokers * sont pris en charge) pour exclure certains hôtes du proxy — typiquement Exchange lui-même, s’il est accessible directement sans passer par le proxy de l’entreprise.
Par défaut, les requêtes vers le serveur Relution ne passent pas par le proxy — il est normalement accessible directement. Si l’installation atteint Relution via le même proxy qu’Exchange, définir honor-proxy-settings: true dans smg/application.yml :
relution:
server:
url: https://votre-serveur-relution
api-key: votre-cle-api
honor-proxy-settings: true # false par défaut ; nécessaire uniquement si Relution est également derrière le proxy
Dépannage
En cas de problème avec le service SMG — par exemple lors de la connexion à Exchange ou du démarrage du conteneur — augmenter le niveau de journalisation aide à l’analyse. Suivre le guide Niveau de journalisation → pour l’activer.
Le plus simple est d’activer le niveau de journalisation directement dans le conteneur SMG via son application.yml, en ajoutant la section suivante à la fin :
logging:
level:
io.relution: DEBUG
Changelog
Version actuellement disponible via latest : 26.0.4 (au 04.08.2026)
| Version | Modification |
|---|---|
| 26.0.4 | Ajustement du processus de release interne – aucune modification fonctionnelle |
| 26.0.3 | Prise en charge des certificats auto-signés et des paramètres de proxy |
| 26.0.2 | Correction des réponses 404 mal gérées |
| 26.0.1 | Exposition du point d’entrée health |
| 26.0.0 | Version initiale — code migré depuis Relution |