Français
Lire les pièces jointes
Extrait le texte des pièces jointes du mail (PDF, texte, HTML…) et le met dans les données de travail : {{ data.extract_text_1.attachments.0.text }}. À placer avant un nœud IA pour lui donner le contenu d’un document.
Lire les pièces jointes extrait le texte des pièces jointes et le place dans les données de travail, où les nœuds suivants peuvent l’utiliser. C’est le nœud à poser avant un nœud IA quand le contenu utile est dans un document plutôt que dans le corps du mail : une facture PDF, un contrat, un export CSV.
Les pièces sont celles de l’exécution : d’abord les pièces jointes du mail déclencheur, puis les fichiers ajoutés par les étapes précédentes (un document rapatrié d’un drive, un PDF signé). Une exécution sans mail peut donc lire les fichiers ajoutés par ses propres étapes.
En bref
- Type :
attachment.extract_text· version 1 - Catégorie : Données
- Nature : Étape — s’exécute pendant une exécution
- Effet : Sans effet externe (
none) — rien n’est écrit hors de Mankomail ; rejouable sans risque - Exige un mail porteur : Non
- Connexion : Aucune
- Entrées :
main - Sorties :
main
Paramètres
selection
Pièces jointes retenues
- Type : Un choix (
options) - Requis : Oui
- Défaut :
all - Options :
all— Toutes les pièces jointes : Celles du mail déclencheur, puis les fichiers ajoutés par les étapes précédentes (un acte rapatrié, un PDF signé), dans cet ordre.first— La première seulement : La première PJ, quand on sait qu’il n’y en a qu’une qui compte.byMime— Par type de fichier : Par type MIME :application/pdf, ou toute une famille avecimage/*.byName— Par nom de fichier : Par motif sur le nom :*.pdf,facture-*.
mime
Type de fichier — Type MIME exact (application/pdf) ou famille entière (image/*). Laissé vide, aucune PJ n’est retenue.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 200 caractères au plus
- Exemple :
application/pdf - Affiché quand :
selectionvautbyMime - Expressions :
{{ }}accepté
namePattern
Nom du fichier — Motif simple : * remplace n’importe quoi, ? un caractère (*.pdf, facture-*). La casse est ignorée.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 200 caractères au plus
- Exemple :
*.pdf - Affiché quand :
selectionvautbyName - Expressions :
{{ }}accepté
includeInline
Inclure les images intégrées — Les logos de signature et images intégrées au corps sont ignorés par défaut — ce ne sont pas des pièces jointes au sens du membre.
- Type : Oui / non (
boolean) - Requis : Non
- Défaut :
false - Rangé sous « Avancé » dans l’éditeur
maxChars
Caractères lus par pièce jointe — Au-delà, le texte est coupé et marqué « tronqué ». Un contrat de 200 pages n’a pas à entrer en entier dans les données d’exécution.
- Type : Nombre (
number) - Requis : Non
- Défaut :
20000 - Nombre entier, de 1000 à 100000
- Rangé sous « Avancé » dans l’éditeur
onMissing
Si aucune PJ n’est lisible — S’applique quand aucune PJ ne correspond au filtre, et quand le contenu d’une PJ n’existe plus (purgé).
- Type : Un choix (
options) - Requis : Oui
- Défaut :
skip - Options :
skip— Continuer sans elle : Le workflow continue avec une liste vide. L’étape réussit, la PJ apparaît dans « ignorées ».fail— Faire échouer l’étape : Quand lire la PJ est le but de l’étape : mieux vaut un échec visible qu’un workflow qui continue à vide.
onUnsupported
Si le format ne se lit pas — Formats sans extracteur (archives, images sans OCR, fichiers CAO) et PJ trop volumineuses.
- Type : Un choix (
options) - Requis : Oui
- Défaut :
skip - Options :
skip— Continuer sans elle : Les autres PJ sont lues normalement. L’étape réussit, la PJ apparaît dans « ignorées ».fail— Faire échouer l’étape : Quand lire la PJ est le but de l’étape : mieux vaut un échec visible qu’un workflow qui continue à vide.
Sorties
main
Données produites
Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).
{{ data.<step>.attachments }}—array of { position, filename, mime, size, text, truncated, pages?, extractor }. Les pièces jointes lues, dans l’ordre. Vide quand rien n’a pu être lu.{{ data.<step>.attachments.0.text }}—string. Le texte de la première pièce lue, coupé à « Caractères lus par pièce jointe ».{{ data.<step>.attachments.0.filename }}—string. Le nom de fichier de la première pièce lue.mimeetsize(en octets) donnent son type et sa taille, etpositionsa position dans la liste des pièces de l’exécution.{{ data.<step>.attachments.0.truncated }}—boolean.truequand le texte a été coupé à « Caractères lus par pièce jointe ».{{ data.<step>.attachments.0.pages }}—number. Pour un PDF, le nombre de pages réellement lues. Absent pour les autres formats.{{ data.<step>.attachments.0.extractor }}—string. Le lecteur qui a traité le fichier :text,htmloupdf.{{ data.<step>.count }}—number. Le nombre de pièces lues (la longueur deattachments).{{ data.<step>.skipped }}—array of { position, filename, reason }. Les pièces sélectionnées mais écartées, avec la raison :unsupported_type,too_large,too_many,not_foundouunavailable.{{ data.<step>.summary }}—string. Une phrase pour le détail d’exécution (fichiers lus, pages, troncature, fichiers ignorés), dans la langue du membre qui exécute le workflow.summaryKeyetsummaryParamsportent la même phrase sous forme de clé de traduction et de paramètres.
Exemple
Des factures fournisseurs arrivent en PDF joint. Ajoutez un nœud Lire les pièces jointes nommé Fichiers :
selection: byMime
mime: "application/pdf"
maxChars: 20000
onMissing: skip
onUnsupported: skipPuis un nœud Extraire dont le « Contenu à traiter » vaut {{ data.fichiers.attachments.0.text }}. Pour un mail qui porte un PDF et un logo de signature, les données de l’étape sont :
json
{
"attachments": [
{
"position": 1,
"filename": "F-2026-118.pdf",
"mime": "application/pdf",
"size": 84211,
"text": "FACTURE F-2026-118 …",
"truncated": false,
"pages": 2,
"extractor": "pdf"
}
],
"count": 1,
"skipped": [],
"summary": "…"
}Le logo est une image intégrée : il est ignoré sans apparaître dans skipped.
Formats pris en charge et limites
- Texte :
text/plain,text/csv,text/tab-separated-valueset tout autre typetext/*. - HTML :
text/htmletapplication/xhtml+xml, lus comme du texte. - PDF :
application/pdfetapplication/x-pdf. Au plus les 50 premières pages sont lues ; les suivantes sont ignorées sans posertruncated, comparez doncpagesà la longueur du document quand c’est important.
Tout autre type (archives, images, documents bureautiques, fichiers CAO) est écarté en unsupported_type sans que son contenu soit chargé. Il n’y a pas d’OCR. Un fichier impossible à analyser (un PDF chiffré ou endommagé, par exemple) ou dont la lecture dépasse le budget de temps est lui aussi écarté en unsupported_type.
Les fichiers de plus de 10 Mo sont écartés en too_large avant d’être chargés. Chaque extraction dispose d’un budget de 20 secondes. Chaque texte est coupé à « Caractères lus par pièce jointe » (20 000 par défaut, entre 1 000 et 100 000) et marqué comme tronqué. Au plus 10 pièces sont lues par étape ; les suivantes sont écartées en too_many.
Quand une pièce ne se lit pas
Par défaut, une pièce illisible ne fait pas échouer le workflow : un mail porte souvent un PDF utile à côté de quelque chose d’illisible. Chaque pièce écartée est listée dans skipped avec sa raison, et l’étape réussit.
- « Si aucune PJ n’est lisible » couvre le cas où rien ne correspond à la sélection, et les pièces dont le contenu n’existe plus (
not_found,unavailable). - « Si le format ne se lit pas » couvre
unsupported_typeettoo_large.
Réglez l’un ou l’autre sur « Faire échouer l’étape » quand lire le document est tout l’objet de l’étape : mieux vaut un échec visible qu’un workflow qui tourne sur un texte vide.
Conseils
- Sélection fermée par défaut. « Par type de fichier » avec un type vide, ou « Par nom de fichier » avec un motif vide, ne retient rien. Les types acceptent
application/pdf,image/*ouimage/; les noms acceptent un motif simple avec*et?(facture-*.pdf), sans distinction de casse. - Images intégrées. Les logos de signature et les images insérées dans le corps sont ignorés, sauf si « Inclure les images intégrées » est coché.
- Le texte extrait est un contenu tiers. Il est écrit par l’expéditeur du fichier. Quand vous l’insérez dans les consignes d’un nœud IA, le modèle est prévenu que les valeurs insérées sont des données ; les balises de délimitation des nœuds IA sont neutralisées dans le texte extrait. Préférez « Contenu à traiter » aux consignes quand le nœud en possède un.
- Essais. Lire n’est pas un effet : en essai, les pièces sont réellement lues, et les nœuds suivants voient le vrai texte.
- Erreurs. Avec « Si aucune PJ n’est lisible » sur « Faire échouer l’étape » et rien de sélectionné, l’étape échoue avec
node_nothing_to_do; avec une pièce écartée sous un réglage « Faire échouer l’étape », elle échoue avec le code correspondant :attachment.unsupported_type,attachment.too_large,attachment.not_foundouattachment.unavailable. Une panne du service de pièces jointes est relayée telle quelle, et retentée quand elle est transitoire.