Call Us +0123456789 info@hashdemo.com
Call Us +0123456789 info@hashdemo.com
Ayana Yoga Ayana Yoga Ayana Yoga
  • Omm
    • Home Version One
    • Home Version Two
  • Cours de Yoga
  • Cours de Yoga Online
    • Blog Left Sidebar
  • Ateliers & stages Yoga
    • Blog Right Sidebar
  • A propos
  • Contact
  • Home
  • -
  • Data integration
  • -
  • Extraire et envoyer des pièces jointes avec Talend et Gmail

Extraire et envoyer des pièces jointes avec Talend et Gmail

  • 29 January 2018
  • Athi
  • 0 Comments
  • Data integration

Partons d’un scénario simple pour illustrer l’extraction et l’envoi de pièce jointe par Talend Studio :

  • Récupérer les données d’un serveur mail POP ou IMAP
  • Extraire les pièces jointes de chaque mail
  • Renvoyer chaque pièce jointe au même destinataire par un relai SMTP

 

L’objectif est d’avoir un job design de base auquel il est facile de rajouter des étapes de transformation de données (comme un simple tmap sur chaque pièce jointe). Pour pouvoir proposer un job Talend de transformation de fichier par envoi de mail.

Prérequis

 

Il nous faut donc un serveur mail entrant POP (ou IMAP) et sortant SMTP, ça tombe bien si vous avez un compte Gmail tout est à votre disposition moyennant quelques manipulations très bien détaillées Lire les messages Gmail dans d’autres clients de messagerie“>ici. Il se peut que vous ayez besoin de Autoriser les applications moins sécurisées“>coAutoriser les applications moins sécurisées“>nfigurer aussi les paramètres de votre compte pour qu’il accepte que talend puisse lire vos email. 

Dans cet exemple on utilisera un dossier dédié à ce job. Enfin vous avez bien sur besoin de Talend Studio (Open ou Entreprise) dans une version 6 et plus (ici 6.4).[

Les sous-jobs et composants

Premier sous-job : Récupération et extraction des pièces jointes

  • Ajouter un composant tPOP, un tFileInputMail, un tFileDelete et un tSetGlobalVar.
  • Relier le tPOP au tFileInputMail par un lien Row Iterate.
  • Relier le tFileInputMail au tSetGlobalVar par un lien Row Main.
  • Relier enfin le tFileInputMail au tFileDelete par un lien Trigger OnCOmponentOk.

 

Pour chaque mail (lien Iterate) récupéré sur le serveur mail on utilise le composant tFileInputMail pour extraire les pièces jointes dans le même dossier. On supprime ensuite le fichier mail (tFileDelete) et on sauvegarde en variable globale le nom de l’expéditeur et le sujet du mail (pour pouvoir lui renvoyer correctement). 

Deuxième sous-job : renvoi des pièces jointes

 
  •  Ajouter maintenant un composant tFileList, tSendMail et tFileDelete.
  • Relier le tFileList au tSendMail par un lien Row Iterate.
  • Relier le tSendMail au tFileDelete par un lien Trigger OnComponentOk.

 

Le deuxième sous-job va donc pour chaque fichier listé dans le dossier de notre choix (celui ou l’on va extraire nos pièces jointes dans notre cas) envoyer un mail avec ce fichier en pièce jointe avant de le supprimer.

On relie enfin le premier sous-job au second en liant le tSetGlobalVar au tFileList par un lien Trigger OnComponentOk.

Le tout en image :

Il y a en plus 2 composants tWarn pour le log des erreurs. 

Configurer les composants du sous-job d’extraction

 

tPOP

 

Le répertoire de sortie doit être un dossier qui existe sur votre espace de travail. Si vous utilisez gmail l’utilisateur et le mot de passe sont vos identifiants google (remplacer context.mailServer par “votremail@gmail.com” ). La case “Utiliser le protocole de sécurisation des messages” est obligatoire. Vous pouvez choisir de cocher la case “Supprimer les email du serveur” et les emails traités par le job n’apparaitront pas dans votre boîte de réception. Malheureusement cette dernière option n’est pas disponible sur gmail avec le protocole POP, il faut passer par le protocole Imap.

Vous pouvez configurer dans Advanced Settings des filtres sur la récupération d’email. Pour que le job ne s’effectue que sur les email d’un certain expéditeur par exemple. 

tFileInputMail

 

Les parties de l’email sont optionnelles pour la plupart, seul FROM, CC et SUBJECT seront utilisés dans la suite. Le schéma du composant dépend des parties de l’email que vous souhaitez utilisées :

6 colonnes STRING : TO, FROM, SUBJECT, CC, BODY, Received.

On utilise la variable tPOP_1_CURRENT_FILEPATH pour le Nom de fichier, elle correspond au nom du fichier courant ainsi que son chemin d’accès (du lien Iterate tPOP).

tSetGlobalVar

 

Le lien Row Main entre tFileInputMail et tSetGlobalVar a été renommé en mail_input dans l’exemple.

tDeleteFile

On supprime le fichier mail si l’extraction s’est bien passé.

Nom de fichier : ((String)globalMap.get(“tPOP_1_CURRENT_FILEPATH”))[/vc_column_text][vc_empty_space height=”10px”][vc_column_text]

Configurer les composants du sous-job d’envoi

 

tFileList

Modifiez le répertoire pour qu’il corresponde au répertoire ou vous avez extrait les pièces jointes dans le premier sous-job (tFileInputMail). Dans mon cas il s’agit toujours du répertoire “C:/Users/Tom/workspace/mails_process”.

tSendMail

 

On utilise les variables définies par le tSetGlobalVar pour ce composant. La pièce jointe correspond donc au fichier courant du tFileList. Vous pouvez optionnellement cocher la case “Afficher le nom de l’expéditeur” et modifier “somewhat@somewhere.com” en y mettant le nom de votre choix.

Pour la configuration des paramètre SMTP, à remplir selon votre server.

Pour google :

 

tDeleteFile

On supprime le fichier pièce jointe si l’envoi s’est bien passé.

Nom de fichier : ((String)globalMap.get(“tFileList_3_CURRENT_FILEPATH”))[/vc_column_text][vc_empty_space height=”10px”][vc_column_text]

Pour aller plus loin

 Ici on utilise le même dossier pour récupérer l’email et les pièces jointes. Il est possible et plus courant d’utiliser deux dossiers différents. On peut aussi intercaler entre les deux sous-job un ou plusieurs jobs de transformation et envoyer les fichiers de sorties de ce nouveau sous-job.

Important : Dans ce cas le lien entre le composant de départ de ce sous-job et le sous-job d’envoi doit être un lien Trigger OnSubJobOk.

Exemple avec un simple tmap et tFileOutputDelimited : 

Le tFileOutputDelimited enregistre les fichiers transformés dans un nouveau répertoire qui est le répertoire d’entrée dans la configuration du tFileList_3. Un mail d’erreur est aussi envoyé si une erreur a lieu à la lecture du fichier.

Si vous êtes intéressé par les bonnes pratiques de design de job talend je vous conseille grandement les excellents articles de Dave Anderson :

  • talend-job-design-patterns-best-practices-part-1
  • talend-job-design-patterns-best-practices-part-2

Tom

Tags:

  • alend
  • data integration
  • gmail
  • imap
  • job design
  • pop
  • smtp
  • talend
  • tuto
prev post next post

Related Posts

Connexion talend FTPS avec certificat de confiance

28 August 2017

Leave a Comment Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Etude des cas d’utilisation du matching avec Talend
  • Comment scraper les données linkedin like a boss ?
  • Low-code : que se cache -t-il derrière ce terme ?
  • Extraire et envoyer des pièces jointes avec Talend et Gmail
  • RGPD: ce que votre entreprise doit savoir

Categories

  • Body fitness
  • Business intelligence
  • Business process management
  • Data integration
  • Exercise
  • GYM
  • Juridique
  • Meditation
  • Non classifié(e)
  • Talend
  • Technologie
  • Webmarkting
  • Youga

Tags

alend appian appian ;business process management big data;growth hacking;intelligence artificielle;innovation Body fitness Body Massage bpm business development; technologie; talend; data integration; scraping business intelligence business process management data integration Exercise gestion de projet gmail GYM imap job design low-code Meditation pop smtp talend talend; data integration tuto Youga
  • en English
    • fr French
    • de German
    • it Italian

Categories

  • Body fitness
  • Business intelligence
  • Business process management
  • Data integration
  • Exercise
  • GYM
  • Juridique
  • Meditation
  • Non classifié(e)
  • Talend
  • Technologie
  • Webmarkting
  • Youga

Recent Posts

  • Etude des cas d’utilisation du matching

    13 March 2020
  • Comment scraper les données linkedin like

    18 March 2020
  • Thumb

    Low-code : que se cache -t-il

    18 March 2020

HT Instagram

Instagram Feed Not found Please enter valid Access Token.(Enter Access Token)

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Contactez-moi par mail ou sms si vous souhaitez plus d’informations ou pour vous inscrire aux cours, ateliers & stages de Yoga.

  • Email : cecile.collange@ayana.yoga
  • Telephone : +33(0)6 87 39 59 93
  • Chanos-Curson

INSTAGRAM

Instagram Feed Not found Please enter valid Access Token.(Enter Access Token)

QUICK LINK

Copyright © 2019 Handstand. All Rights Reserved.