Skip to content

Boîtes mail et miroir ​

Tous les workflows, le webmail et l’analyseur travaillent à partir du miroir : une copie synchronisée de chaque boîte que vous connectez. Cette page explique quelles boîtes peuvent être connectées, ce que le miroir conserve et où, comment il reste à jour, que faire quand une boîte ne se synchronise plus, et comment les actions décidées par un workflow atteignent la boîte réelle.

Les boîtes se gèrent sur la page Boîtes (« Les boîtes connectées et l’état de leur miroir. »). Les comptes et les accès eux-mêmes se gèrent sur la page Connexions.

Les fournisseurs que vous pouvez connecter ​

FournisseurAffichéMode de connexionCe qu’il faut d’abord
Google (Gmail, Google Workspace)GmailOAuth : vous vous identifiez chez Google et acceptez les accès demandésun administrateur a enregistré l’application Google de l’organisation (Google)
Microsoft 365 (Outlook, Exchange Online), via Microsoft GraphMicrosoft 365OAuth : vous vous identifiez chez Microsoft et acceptez les accès demandésun administrateur a enregistré l’application Microsoft de l’organisation (Microsoft)
Toute boîte IMAP/SMTPIMAPadresse, serveurs et mot de passerien ; l’instance doit disposer d’une clé de chiffrement pour conserver le mot de passe (IMAP/SMTP)

Un membre peut connecter plusieurs boîtes, de fournisseurs différents. Chaque boîte appartient au membre qui l’a connectée.

Les accès demandés pour le courrier. Google : lire, envoyer, modifier et gérer les libellés de Gmail (gmail.readonly, gmail.send, gmail.modify, gmail.labels). Microsoft : Mail.ReadWrite et Mail.Send. L’accès aux fichiers ou aux agendas est demandé à part, seulement quand un membre l’autorise pour un nœud ; connecter une boîte ne donne aucun accès aux fichiers.

Connecter une boîte ​

Google ou Microsoft

  1. Ouvrez Boîtes.
  2. Sous « Connecter une boîte », choisissez le fournisseur et cliquez « Connecter une boîte Google » ou « Connecter une boîte Microsoft ».
  3. Identifiez-vous chez le fournisseur et acceptez les accès demandés.
  4. Vous revenez avec le message « Boîte {address} connectée. » et la boîte commence à se synchroniser.

Si la page affiche « L’application OAuth n’est pas configurée », un administrateur doit d’abord enregistrer l’application de l’organisation dans Administration → Applications OAuth.

IMAP/SMTP

  1. Ouvrez Boîtes et cliquez « Connecter une boîte IMAP ».
  2. Remplissez :
ChampPar défautRemarques
Adresse de la boîte—l’adresse qui reçoit le courrier, pas forcément l’identifiant de connexion
Réception (IMAP) : Serveur, Portport 993
Envoi (SMTP) : Serveur, Portport 465
Connexion chiffrée dès l’ouverture (TLS)cochée, pour chaque serveurdécochée, la connexion s’ouvre en clair puis bascule en STARTTLS — jamais en clair jusqu’au bout
Identifiant de connexion (facultatif)l’adresseseulement si votre hébergeur vous a donné un identifiant différent
Mot de passe—jamais réaffiché ; préférez un « mot de passe d’application » quand votre fournisseur en propose
Avancé → Accepter un certificat que le système ne valide pasdécochéeseulement pour un serveur interne à certificat auto-signé
  1. Cliquez « Connecter la boîte ». Les identifiants sont éprouvés sur une vraie connexion IMAP puis sur une vraie connexion SMTP avant d’être enregistrés : un serveur, un port, un certificat ou un mot de passe erroné est signalé tout de suite.

Les ports usuels sont 993 (ou 143 avec STARTTLS) en IMAP, 465 (ou 587 avec STARTTLS) en SMTP. Les boîtes IMAP se connectent uniquement par mot de passe.

Reconnecter une boîte existante (même adresse), par OAuth ou par le formulaire IMAP, réactive la même boîte avec son historique : rien n’est dupliqué.

Ce que le miroir conserve, et où ​

Pour chaque boîte, le miroir conserve tous les messages de tous les dossiers ou libellés — réception, envoyés, brouillons, archives, spam, corbeille et vos propres dossiers —, avec leurs fils, leur état lu et suivi, et leurs pièces jointes.

QuoiOù
Les métadonnées des messages : expéditeur, destinataires, objet, dates, extrait, dossiers et libellés, état lu/suivi, signaux détectés (réponse automatique, liste de diffusion, no-reply, émis par Mankomail)base de données
Le texte servant à la recherche (le corps aplati, jusqu’à 32 000 caractères)base de données
Les fils, les métadonnées des pièces jointes, la liste des dossiersbase de données
Le message d’origine complet (.eml), chaque pièce jointe, et le contenu des messages envoyésstockage objet
Le journal de réception (le sort de chaque message reçu)base de données

Le stockage objet est un service compatible S3, réglé par les variables STORAGE_* (voir Configuration). Sans stockage objet configuré, l’instance garde ces fichiers en mémoire seulement et les perd au redémarrage : le webmail et les workflows se rabattent alors sur l’extrait conservé en base.

Dossiers et libellés sont enregistrés dans le même vocabulaire pour tous les fournisseurs : INBOX, SENT, DRAFT, TRASH, SPAM, ARCHIVE, plus vos propres dossiers ou libellés. Gmail a des libellés plutôt que des dossiers : un message Gmail archivé est un message qui n’a plus INBOX. Les dossiers usuels de Microsoft 365 et les dossiers spéciaux IMAP sont ramenés aux mêmes noms.

Comment fonctionne la synchronisation ​

Chaque boîte est tenue à jour par plusieurs mécanismes qui travaillent ensemble :

MécanismeGmailMicrosoft 365IMAP
Notification — le fournisseur signale un changement en quelques secondesnotifications Google Pub/Sub, quand l’instance est configurée pournotifications de changement Microsoft GraphIMAP IDLE sur la boîte de réception
Relève — l’instance demande « qu’est-ce qui a changé depuis la dernière fois ? »toutes les POLL_INTERVAL_SECONDS (300 s par défaut)idemidem
Delta — ce qui est rapatriél’historique Gmail depuis la dernière positionle delta Graph par dossierles changements par dossier
  • La notification accélère ; la relève garantit. La relève tourne pour toutes les boîtes, que les notifications fonctionnent ou non : une notification manquée est rattrapée à la relève suivante. Les abonnements aux notifications sont renouvelés automatiquement avant leur expiration.
  • Les notifications demandent des réglages d’instance. Celles de Gmail demandent GMAIL_PUBSUB_TOPIC et PUSH_SHARED_SECRET ; celles de Microsoft demandent PUSH_SHARED_SECRET et une adresse publique. Sans eux, les boîtes se synchronisent par relève seulement. Voir Configuration.
  • Aucun message n’est lu à votre place. La synchronisation ne marque jamais un message comme lu chez le fournisseur.
  • Aucun doublon. Un message livré par notification et par relève n’est conservé qu’une fois.
  • Cliquez « Synchroniser » sur la carte d’une boîte pour demander un delta immédiat (« Synchronisation demandée. »). S’il y en a déjà un en attente, vous voyez « Une synchronisation est déjà en attente. »

Après une interruption (une longue panne, un serveur arrêté une journée), le fournisseur peut ne plus savoir dire ce qui a changé depuis la dernière position. L’instance rattrape alors automatiquement la période écoulée depuis la dernière synchronisation réussie, jusqu’à 24 heures en arrière. Pour un trou plus long, utilisez Rattraper une période.

L’historique importé à la connexion ​

À la connexion d’une boîte, le miroir importe son historique en arrière-plan, le plus récent d’abord : les 7 derniers jours en premier, pour que la boîte soit utilisable tout de suite, puis les périodes antérieures par tranches de BACKFILL_CHUNK_DAYS jours (30 par défaut), jusqu’à BACKFILL_MONTHS mois avant la connexion (12 par défaut). Ce sont deux réglages d’instance ; aucun choix n’est proposé à la connexion.

La carte affiche la progression sous « Backfill » (En attente, En cours, Terminé, Échoué) et « Remonté jusqu’au » avec la date la plus ancienne atteinte. L’import reprend là où il s’était arrêté après un redémarrage, sans doublon.

L’historique ne lance jamais de workflow. Les messages importés servent au webmail, à la recherche, à l’analyseur, au contexte donné à l’IA et aux essais, mais seuls les messages arrivés après la connexion peuvent déclencher un workflow. Reconnecter une boîte ne remet pas ce point de départ à zéro.

Quels messages peuvent lancer un workflow ​

Un message n’atteint les déclencheurs des workflows que s’il est :

  1. nouveau : livré par la synchronisation après la connexion de la boîte — ni historique importé, ni rattrapage, ni message déjà présent dans le miroir ;
  2. hors des Envoyés, du Spam, de la Corbeille et des Brouillons ;
  3. dans le périmètre : non exclu par les règles de périmètre de l’organisation ou par les vôtres ;
  4. non arrêté par un garde-fou : un message produit par Mankomail lui-même (un envoi ou un brouillon d’un workflow ou du webmail, qui revient par la synchronisation), une réponse automatique, un message de liste de diffusion ou de newsletter, ou un message venant d’une adresse no-reply.

Les messages que vous envoyez vous-même depuis votre messagerie arrivent dans les Envoyés : ils ne sont donc jamais examinés (point 2).

Chaque message qui passe les points 1 et 2 laisse une ligne dans le journal de réception, avec son sort :

SortSignification
Exclu — périmètre organisationl’expéditeur est exclu par les règles de l’organisation
Exclu — périmètre membrel’expéditeur est exclu par vos règles
Exclu — garde-fouproduit par Mankomail lui-même (« message envoyé par soi-même »), réponse automatique, liste de diffusion ou expéditeur no-reply
Reçu non matchédans le périmètre, mais aucune condition de déclencheur ne correspond
Traitéau moins un workflow s’est lancé

Le journal s’affiche sous Activité → Mails reçus, avec la règle qui a tranché (« Décidé par »). Un message exclu reste dans le miroir et visible dans le webmail : l’exclusion arrête le traitement, pas la conservation. La correspondance des conditions est décrite dans Déclencheurs et conditions.

Les statuts d’une boîte ​

StatutSignificationQue faire
Activela boîte se synchroniserien
En erreurle fournisseur n’accepte plus l’accès : jeton révoqué, mot de passe changé, autorisation retiréereconnecter la boîte (« Reconnecter cette boîte »)
Déconnectéevous l’avez déconnectée, ou un administrateur a désactivé votre comptela reconnecter pour reprendre

Seul un accès refusé met une boîte En erreur. Alors :

  • la synchronisation s’arrête et plus rien n’arrive par cette boîte ; un bandeau indique « 1 boîte est en erreur : {address} ne reçoit plus rien. » ;
  • vous recevez une notification « La boîte {address} ne reçoit plus rien » ;
  • dès qu’une synchronisation réussit de nouveau (après reconnexion), la boîte repasse Active et vous recevez « La boîte {address} refonctionne ».

Les autres problèmes laissent la boîte Active et s’affichent sous « Dernière erreur », avec une section « Détail technique » (type, code, message du fournisseur, opération, statut HTTP) :

TypeSignification
erreur passagèrele fournisseur n’a pas répondu ; la synchronisation suivante réessaie toute seule
erreur définitive sur un messagepar exemple un message supprimé entre deux synchronisations ; la synchronisation continue
position expiréel’interruption a été trop longue pour que le fournisseur sache où reprendre ; rattrapez la période manquée

Quand une boîte ne s’est pas synchronisée depuis un moment, sa carte affiche « Aucune synchronisation depuis {duration}. ». Une synchronisation freinée par les quotas du fournisseur attend et reprend sans compter comme un échec.

Rattraper une période ​

« Rattraper une période… » rejoue la synchronisation depuis une date que vous choisissez, pour combler un trou après une interruption.

  1. Ouvrez Boîtes et, sur la carte de la boîte, choisissez « Rattraper une période… ».
  2. Choisissez la date sous « Depuis le ». Elle peut remonter à 92 jours au plus.
  3. Cliquez « Rattraper ». La carte confirme « Rattrapage demandé depuis le {date}. »

Ce que garantit un rattrapage :

  • aucun doublon : les messages déjà présents dans le miroir ne sont ni dupliqués ni retéléchargés ; rattraper deux fois la même semaine ne coûte que du temps ;
  • aucun workflow ne se lance : un rattrapage se comporte comme l’import de l’historique — rejouer trois semaines n’envoie pas trois semaines de réponses automatiques ;
  • un seul à la fois par boîte.

Une boîte doit être Active pour se synchroniser ou être rattrapée ; sinon, reconnectez-la d’abord. Par l’API : POST /api/v1/mailboxes/:id/sync (delta immédiat) et POST /api/v1/mailboxes/:id/resync avec { "since": "<date ISO 8601>" }. Les deux répondent 202 { "enqueued": true | false } ; les refus sont 409 mailbox.not_active et 400 mailbox.resync_window_invalid (date dans le futur ou à plus de 92 jours).

Déconnecter ou supprimer une boîte ​

Le menu d’actions de la carte d’une boîte propose deux gestes différents. Avant de confirmer, la fenêtre compte ce qui est touché : messages, exécutions en cours, et workflows publiés qui se déclenchent sur cette boîte ou envoient depuis elle.

DéconnecterSupprimer la boîte
Synchronisations’arrêtes’arrête
Accès enregistréretiré : le mot de passe IMAP est effacé ; un compte OAuth perd son accès au courrier (il reste pour les fichiers ou les agendas si vous les avez autorisés)retiré, de la même façon
Miroir (messages, fils, pièces jointes, journal de réception)conservé et consultable dans le webmaileffacé, avec l’historique d’envoi et les exécutions qui portaient sur cette boîte
Workflows qui se déclenchent sur ellene se déclenchent plus sur cette boîte jusqu’à la reconnexion ; ils continuent sur vos autres boîtesne se déclenchent plus que sur vos autres boîtes
Workflows qui envoient depuis elleleurs envois échouent jusqu’à la reconnexionmis hors ligne : choisissez une autre boîte d’expédition avant de les publier de nouveau
Exécutions en courscontinuent ; un envoi depuis cette boîte échoueeffacées
Réversibleoui : reconnecter reprend la même boîte, historique comprisnon
La boîte chez le fournisseurpas touchéepas touchée

Pour supprimer, tapez l’adresse exacte de la boîte dans « Pour confirmer, tapez l’adresse de la boîte », puis cliquez « Supprimer la boîte ». Les fichiers conservés sont effacés en arrière-plan par l’entretien horaire (« Ses contenus seront effacés du stockage dans l’heure ») ; une très grosse boîte peut demander quelques heures.

Par l’API : GET /api/v1/mailboxes/:id/removal-impact (ce qui serait touché), POST /api/v1/mailboxes/:id/disconnect, et DELETE /api/v1/mailboxes/:id avec { "confirm": "<adresse de la boîte>" } (refusé avec 400 mailbox.confirmation_mismatch si l’adresse ne correspond pas).

Comment les workflows agissent sur la boîte réelle ​

Quand un workflow ou le webmail envoie, crée un brouillon, classe ou marque un message, l’action ne part pas directement chez le fournisseur. Elle est d’abord enregistrée comme opération sortante, puis exécutée par un traitement en arrière-plan :

OpérationProduite par
envoiEnvoyer en mode envoi, le composeur du webmail, les demandes d’approbation
brouillonEnvoyer en mode brouillon, le webmail
déplacement, libelléClasser, le webmail
marquage (lu, suivi)Marquer, le webmail
suppression (vers la corbeille) et suppression définitivele webmail ; la suppression définitive seulement là où le fournisseur l’autorise

Ce que cela garantit :

  • Jamais deux fois. Chaque opération porte une clé unique : une étape rejouée après un échec, ou un double clic, n’envoie jamais un second mail.
  • Nouvelles tentatives. Une opération qui échoue est retentée, 5 tentatives au plus, en attendant 30 secondes ou le délai que demande le fournisseur quand il limite le débit.
  • Limites d’envoi. Au-delà de SEND_MAX_PER_HOUR (100 par heure par défaut), les envois attendent leur tour ; ils ne sont pas perdus. Les messages sont limités à SEND_MAX_BYTES (25 Mo par défaut).
  • Le coupe-circuit d’envoi ne retient que les opérations d’envoi : brouillons, déplacements et marquages continuent. Voir Gouvernance.
  • Le miroir n’est pas modifié par avance. Le nouvel état revient par la synchronisation suivante, comme pour tout changement fait chez le fournisseur. Un message produit par Mankomail porte une marque d’origine : quand il revient par la synchronisation, il ne déclenche jamais de workflow.
  • Un accès refusé pendant une opération met la boîte En erreur, comme pendant une synchronisation.

Conservation ​

DonnéesConservées
Messages, corps et pièces jointes d’une boîte connectée ou déconnectéetant que la boîte existe dans Mankomail : jamais supprimés selon leur âge
Journal de réception365 jours
Exécutions réelles terminées, leurs étapes et leurs données180 jours (voir Exécutions)
Opérations sortantes terminées et historique d’envoi180 jours
Essais7 jours par défaut (SIMULATED_EXECUTIONS_RETENTION_DAYS)

Le miroir d’une boîte ne disparaît que lorsque vous supprimez la boîte. Supprimer un message dans le webmail le supprime chez le fournisseur, et le changement revient au miroir par la synchronisation.

Pages liées ​