{"id":20109,"date":"2018-01-29T21:10:26","date_gmt":"2018-01-29T20:10:26","guid":{"rendered":"https:\/\/www.solypse.com\/?p=18439"},"modified":"2022-04-13T22:29:58","modified_gmt":"2022-04-13T20:29:58","slug":"talend-gmail-pieces-jointes","status":"publish","type":"post","link":"https:\/\/www.solypse.com\/en\/talend-gmail-pieces-jointes\/","title":{"rendered":"Extract and send attachments with Talend and Gmail"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"20109\" class=\"elementor elementor-20109\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-251f759a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"251f759a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-19df4b64\" data-id=\"19df4b64\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-62c7e0b9 elementor-widget elementor-widget-text-editor\" data-id=\"62c7e0b9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Partons d&rsquo;un sc\u00e9nario simple pour illustrer l&rsquo;extraction et l&rsquo;envoi de pi\u00e8ce jointe par Talend Studio :<\/span><\/p><ul><li><span style=\"font-weight: 400;\">R\u00e9cup\u00e9rer les donn\u00e9es d&rsquo;un serveur mail POP ou IMAP<\/span><\/li><li><span style=\"font-weight: 400;\">Extraire les pi\u00e8ces jointes de chaque mail<\/span><\/li><li><span style=\"font-weight: 400;\">Renvoyer chaque pi\u00e8ce jointe au m\u00eame destinataire par un relai SMTP<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">L&rsquo;objectif est d&rsquo;avoir un job design de base auquel il est facile de rajouter des \u00e9tapes de transformation de donn\u00e9es (comme un simple tmap sur chaque pi\u00e8ce jointe). Pour pouvoir proposer un job Talend de transformation de fichier par envoi de mail.<\/span><\/p><h2>Pr\u00e9requis<\/h2><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Il nous faut donc un serveur mail entrant POP (ou IMAP) et sortant SMTP, \u00e7a tombe bien si vous avez un compte Gmail tout est \u00e0 votre disposition moyennant quelques manipulations tr\u00e8s bien d\u00e9taill\u00e9es <a href=\"http:\/\/&lt;a href=\">Lire les messages Gmail dans d&rsquo;autres clients de messagerie<\/a>\u00ab\u00a0&gt;ici. I<\/span>l se peut que vous ayez besoin de <a href=\"http:\/\/&lt;a href=\">Autoriser les applications moins s\u00e9curis\u00e9es<\/a>\u00ab\u00a0&gt;co<a href=\"http:\/\/&lt;a href=\">Autoriser les applications moins s\u00e9curis\u00e9es<\/a>\u00ab\u00a0&gt;nfigurer aussi les param\u00e8tres de votre compte pour qu&rsquo;il accepte que talend puisse lire vos email.\u00a0<\/p><p><span style=\"font-weight: 400;\">Dans cet exemple on utilisera un dossier d\u00e9di\u00e9 \u00e0 ce job. Enfin vous avez bien sur besoin de Talend Studio (Open ou Entreprise) dans une version 6 et plus (ici 6.4).<\/span>[<\/p><h2>Les sous-jobs et composants<\/h2><h3>Premier sous-job : R\u00e9cup\u00e9ration et extraction des pi\u00e8ces jointes<\/h3><ul><li><span style=\"font-weight: 400;\">Ajouter un composant tPOP, un tFileInputMail, un tFileDelete et un tSetGlobalVar.<\/span><\/li><li><span style=\"font-weight: 400;\">Relier le tPOP au tFileInputMail par un lien Row Iterate.<\/span><\/li><li><span style=\"font-weight: 400;\">Relier le tFileInputMail au tSetGlobalVar par un lien Row Main.<\/span><\/li><li><span style=\"font-weight: 400;\">Relier enfin le tFileInputMail au tFileDelete par un lien Trigger OnCOmponentOk.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Pour chaque mail (lien Iterate) r\u00e9cup\u00e9r\u00e9 sur le serveur mail on utilise le composant tFileInputMail pour extraire les pi\u00e8ces jointes dans le m\u00eame dossier. On supprime ensuite le fichier mail (tFileDelete) et on sauvegarde en variable globale le nom de l&rsquo;exp\u00e9diteur et le sujet du mail (pour pouvoir lui renvoyer correctement).\u00a0<\/span><\/p><h3>Deuxi\u00e8me sous-job :\u00a0renvoi des pi\u00e8ces jointes<\/h3><div>\u00a0<\/div><ul><li><span style=\"font-weight: 400;\">\u00a0Ajouter maintenant un composant tFileList, tSendMail et tFileDelete.<\/span><\/li><li><span style=\"font-weight: 400;\">Relier le tFileList au tSendMail par un lien Row Iterate.<\/span><\/li><li><span style=\"font-weight: 400;\">Relier le tSendMail au tFileDelete par un lien Trigger OnComponentOk.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Le deuxi\u00e8me sous-job va donc pour chaque fichier list\u00e9 dans le dossier de notre choix (celui ou l&rsquo;on va extraire nos pi\u00e8ces jointes dans notre cas) envoyer un mail avec ce fichier en pi\u00e8ce jointe avant de le supprimer.<\/span><\/p><p><span style=\"font-weight: 400;\">On relie enfin le premier sous-job au second en liant le tSetGlobalVar au tFileList par un lien Trigger OnComponentOk.<\/span><\/p><p><span style=\"background-color: #ffffff;\">Le tout en image :<\/span><span style=\"font-weight: 400;\"><br \/><\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-595e065 elementor-widget elementor-widget-image\" data-id=\"595e065\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"298\" src=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-1024x381.png\" class=\"attachment-large size-large wp-image-20519\" alt=\"\" srcset=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-1024x381.png 1024w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-300x112.png 300w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-768x286.png 768w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-700x261.png 700w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative.png 1477w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d9c2245 elementor-widget elementor-widget-text-editor\" data-id=\"d9c2245\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Il y a en plus 2 composants tWarn pour le log des erreurs.\u00a0<\/span><\/p><h2>Configurer les composants du sous-job d&rsquo;extraction<\/h2><p>\u00a0<\/p><p><span style=\"color: #161616; font-size: 17px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;\">tPOP<\/span><\/p><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fec6c27 elementor-widget elementor-widget-image\" data-id=\"fec6c27\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"198\" src=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tPop_detail-1024x254.png\" class=\"attachment-large size-large wp-image-20518\" alt=\"\" srcset=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tPop_detail-1024x254.png 1024w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tPop_detail-300x75.png 300w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tPop_detail-768x191.png 768w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tPop_detail-700x174.png 700w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tPop_detail.png 1481w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2490326 elementor-widget elementor-widget-text-editor\" data-id=\"2490326\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Le r\u00e9pertoire de sortie doit \u00eatre un dossier qui existe sur votre espace de travail. Si vous utilisez gmail l&rsquo;utilisateur et le mot de passe sont vos identifiants google (remplacer context.mailServer par \u00ab\u00a0votremail@gmail.com\u00a0\u00bb ). La case \u00ab\u00a0Utiliser le protocole de s\u00e9curisation des messages\u00a0\u00bb est obligatoire. Vous pouvez choisir de cocher la case \u00ab\u00a0Supprimer les email du serveur\u00a0\u00bb et les emails trait\u00e9s par le job n&rsquo;apparaitront pas dans votre bo\u00eete de r\u00e9ception. Malheureusement cette derni\u00e8re option n&rsquo;est pas disponible sur gmail avec le protocole POP, il faut passer par le protocole Imap.<\/span><\/p><p><span style=\"font-weight: 400;\">Vous pouvez configurer dans Advanced Settings des filtres sur la r\u00e9cup\u00e9ration d&#8217;email. Pour que le job ne s&rsquo;effectue que sur les email d&rsquo;un certain exp\u00e9diteur par exemple.\u00a0<\/span><\/p><h3>tFileInputMail<\/h3><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fd9f77 elementor-widget elementor-widget-image\" data-id=\"4fd9f77\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"252\" src=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tFileInputMail_detail-1-1024x323.png\" class=\"attachment-large size-large wp-image-20517\" alt=\"\" srcset=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tFileInputMail_detail-1-1024x323.png 1024w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tFileInputMail_detail-1-300x95.png 300w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tFileInputMail_detail-1-768x242.png 768w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tFileInputMail_detail-1-700x221.png 700w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tFileInputMail_detail-1.png 1479w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f411ae7 elementor-widget elementor-widget-text-editor\" data-id=\"f411ae7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Les parties de l&#8217;email sont optionnelles pour la plupart, seul FROM, CC et SUBJECT seront utilis\u00e9s dans la suite. Le sch\u00e9ma du composant d\u00e9pend des parties de l&#8217;email que vous souhaitez utilis\u00e9es :<\/span><\/p><p><span style=\"font-weight: 400;\">6 colonnes STRING : TO, FROM, SUBJECT, CC, BODY, Received. <\/span><\/p><p><span style=\"font-weight: 400;\">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&rsquo;acc\u00e8s (du lien Iterate tPOP).<\/span><\/p><h3>tSetGlobalVar<\/h3><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6db471 elementor-widget elementor-widget-image\" data-id=\"c6db471\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"123\" src=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSetGlobalVar_detail.png\" class=\"attachment-large size-large wp-image-20516\" alt=\"\" srcset=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSetGlobalVar_detail.png 751w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSetGlobalVar_detail-300x49.png 300w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSetGlobalVar_detail-700x115.png 700w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee7b313 elementor-widget elementor-widget-text-editor\" data-id=\"ee7b313\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Le lien Row Main entre tFileInputMail et tSetGlobalVar a \u00e9t\u00e9 renomm\u00e9 en mail_input dans l&rsquo;exemple.<\/span><\/p><h3>tDeleteFile<\/h3><p>On supprime le fichier mail si l&rsquo;extraction s&rsquo;est bien pass\u00e9.<\/p><p><span style=\"font-weight: 400;\">Nom de fichier : ((String)globalMap.get(\u00ab\u00a0tPOP_1_CURRENT_FILEPATH\u00a0\u00bb))<\/span>[\/vc_column_text][vc_empty_space height=\u00a0\u00bb10px\u00a0\u00bb][vc_column_text]<\/p><h2>Configurer les composants du sous-job d&rsquo;envoi<\/h2><p><span style=\"color: #161616; font-size: 17px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;\">\u00a0<\/span><\/p><p><span style=\"color: #161616; font-size: 17px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;\">tFileList<\/span><\/p><p><span style=\"font-weight: 400;\">Modifiez le r\u00e9pertoire pour qu&rsquo;il corresponde au r\u00e9pertoire ou vous avez extrait les pi\u00e8ces jointes dans le premier sous-job (tFileInputMail). Dans mon cas il s&rsquo;agit toujours du r\u00e9pertoire \u00ab\u00a0C:\/Users\/Tom\/workspace\/mails_process\u00a0\u00bb.<\/span><\/p><h3>tSendMail<\/h3><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d925435 elementor-widget elementor-widget-image\" data-id=\"d925435\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"316\" src=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSendMail_detail_1-1024x405.png\" class=\"attachment-large size-large wp-image-20521\" alt=\"\" srcset=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSendMail_detail_1-1024x405.png 1024w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSendMail_detail_1-300x119.png 300w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSendMail_detail_1-768x304.png 768w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSendMail_detail_1-700x277.png 700w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/tSendMail_detail_1.png 1453w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e52dd1 elementor-widget elementor-widget-text-editor\" data-id=\"6e52dd1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">On utilise les variables d\u00e9finies par le tSetGlobalVar pour ce composant. La pi\u00e8ce jointe correspond donc au fichier courant du tFileList. Vous pouvez optionnellement cocher la case \u00ab\u00a0Afficher le nom de l&rsquo;exp\u00e9diteur\u00a0\u00bb et modifier \u00ab\u00a0somewhat@somewhere.com\u00a0\u00bb en y mettant le nom de votre choix.<\/span><\/p><p><span style=\"font-weight: 400;\">Pour la configuration des param\u00e8tre SMTP, \u00e0 remplir selon votre server.<\/span><\/p><p><span style=\"font-weight: 400;\">Pour google :<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-93709e2 elementor-widget elementor-widget-image\" data-id=\"93709e2\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"108\" src=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/mail_details_smtp-1024x138.png\" class=\"attachment-large size-large wp-image-20520\" alt=\"\" srcset=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/mail_details_smtp-1024x138.png 1024w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/mail_details_smtp-300x40.png 300w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/mail_details_smtp-768x103.png 768w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/mail_details_smtp-700x94.png 700w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/mail_details_smtp.png 1232w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7145b65 elementor-widget elementor-widget-text-editor\" data-id=\"7145b65\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u00a0<\/p><h3>tDeleteFile<\/h3><p><span style=\"font-weight: 400;\">On supprime le fichier pi\u00e8ce jointe si l&rsquo;envoi s&rsquo;est bien pass\u00e9.<\/span><\/p><p><span style=\"font-weight: 400;\">Nom de fichier : ((String)globalMap.get(\u00ab\u00a0tFileList_3_CURRENT_FILEPATH\u00a0\u00bb))<\/span>[\/vc_column_text][vc_empty_space height=\u00a0\u00bb10px\u00a0\u00bb][vc_column_text]<\/p><h2>Pour aller plus loin<\/h2><p><span style=\"font-weight: 400;\">\u00a0Ici on utilise le m\u00eame dossier pour r\u00e9cup\u00e9rer l&#8217;email et les pi\u00e8ces jointes. Il est possible et plus courant d&rsquo;utiliser deux dossiers diff\u00e9rents. 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.<\/span><\/p><p><span style=\"font-weight: 400;\">Important : Dans ce cas le lien entre le composant de d\u00e9part de ce sous-job et le sous-job d&rsquo;envoi doit \u00eatre un lien Trigger OnSubJobOk.<\/span><\/p><p><span style=\"font-weight: 400;\">Exemple avec un simple tmap et tFileOutputDelimited :\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27dd10a elementor-widget elementor-widget-image\" data-id=\"27dd10a\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"298\" src=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-1024x381.png\" class=\"attachment-large size-large wp-image-20519\" alt=\"\" srcset=\"https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-1024x381.png 1024w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-300x112.png 300w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-768x286.png 768w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative-700x261.png 700w, https:\/\/www.solypse.com\/wp-content\/uploads\/2018\/01\/final_alternative.png 1477w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51666c9 elementor-widget elementor-widget-text-editor\" data-id=\"51666c9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Le tFileOutputDelimited enregistre les fichiers transform\u00e9s dans un nouveau r\u00e9pertoire qui est le r\u00e9pertoire d&rsquo;entr\u00e9e dans la configuration du tFileList_3. Un mail d&rsquo;erreur est aussi envoy\u00e9 si une erreur a lieu \u00e0 la lecture du fichier.<\/p><p>Si vous \u00eates int\u00e9ress\u00e9 par les bonnes pratiques de design de job talend je vous conseille grandement les excellents articles de Dave Anderson :<\/p><ul><li><a href=\"https:\/\/fr.talend.com\/blog\/2015\/12\/07\/talend-job-design-patterns-and-best-practices\">talend-job-design-patterns-best-practices-part-1<\/a><\/li><li><a href=\"https:\/\/fr.talend.com\/blog\/2016\/03\/30\/talend-job-design-patterns-best-practices-part-2\">talend-job-design-patterns-best-practices-part-2<\/a><\/li><\/ul><p>Tom<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Partons d&rsquo;un sc\u00e9nario simple pour illustrer l&rsquo;extraction et l&rsquo;envoi de pi\u00e8ce jointe par Talend Studio : R\u00e9cup\u00e9rer les donn\u00e9es d&rsquo;un serveur mail POP ou IMAP Extraire les pi\u00e8ces jointes de chaque mail Renvoyer chaque pi\u00e8ce jointe au m\u00eame destinataire par un relai SMTP L&rsquo;objectif est d&rsquo;avoir un job design de base auquel il est facile [&hellip;]<\/p>","protected":false},"author":1,"featured_media":18440,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[127],"tags":[153,154,156,160,162,164,167],"class_list":["post-20109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-integration","tag-gmail","tag-imap","tag-job-design","tag-pop","tag-smtp","tag-talend","tag-tuto"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail - Solypse<\/title>\n<meta name=\"description\" content=\"Un rapide article pour expliquer comment envoyer et recevoir des emails avec talend en utilisant le service Google de messagerie gmail.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.solypse.com\/en\/talend-gmail-pieces-jointes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail - Solypse\" \/>\n<meta property=\"og:description\" content=\"Un rapide article pour expliquer comment envoyer et recevoir des emails avec talend en utilisant le service Google de messagerie gmail.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.solypse.com\/en\/talend-gmail-pieces-jointes\/\" \/>\n<meta property=\"og:site_name\" content=\"Solypse\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-29T20:10:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-13T20:29:58+00:00\" \/>\n<meta name=\"author\" content=\"Athi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Athi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/\"},\"author\":{\"name\":\"Athi\",\"@id\":\"https:\/\/www.solypse.com\/#\/schema\/person\/ad5690a668df908894015a56065489b0\"},\"headline\":\"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail\",\"datePublished\":\"2018-01-29T20:10:26+00:00\",\"dateModified\":\"2022-04-13T20:29:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/\"},\"wordCount\":1044,\"publisher\":{\"@id\":\"https:\/\/www.solypse.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"gmail\",\"imap\",\"job design\",\"pop\",\"smtp\",\"talend\",\"tuto\"],\"articleSection\":[\"Data integration\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/\",\"url\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/\",\"name\":\"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail - Solypse\",\"isPartOf\":{\"@id\":\"https:\/\/www.solypse.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2018-01-29T20:10:26+00:00\",\"dateModified\":\"2022-04-13T20:29:58+00:00\",\"description\":\"Un rapide article pour expliquer comment envoyer et recevoir des emails avec talend en utilisant le service Google de messagerie gmail.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.solypse.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.solypse.com\/#website\",\"url\":\"https:\/\/www.solypse.com\/\",\"name\":\"Solypse\",\"description\":\"Architecting growth through technology\",\"publisher\":{\"@id\":\"https:\/\/www.solypse.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.solypse.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.solypse.com\/#organization\",\"name\":\"Solypse\",\"url\":\"https:\/\/www.solypse.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.solypse.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.solypse.com\/wp-content\/uploads\/2015\/06\/LOGO_SOLYPSE_BLANC.png\",\"contentUrl\":\"https:\/\/www.solypse.com\/wp-content\/uploads\/2015\/06\/LOGO_SOLYPSE_BLANC.png\",\"width\":319,\"height\":136,\"caption\":\"Solypse\"},\"image\":{\"@id\":\"https:\/\/www.solypse.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.solypse.com\/#\/schema\/person\/ad5690a668df908894015a56065489b0\",\"name\":\"Athi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.solypse.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8cb9d3a7e661f26506eefea7c01d8a62b33dda09e2251a5b29b5fa7016272374?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8cb9d3a7e661f26506eefea7c01d8a62b33dda09e2251a5b29b5fa7016272374?s=96&d=mm&r=g\",\"caption\":\"Athi\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail - Solypse","description":"Un rapide article pour expliquer comment envoyer et recevoir des emails avec talend en utilisant le service Google de messagerie gmail.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.solypse.com\/en\/talend-gmail-pieces-jointes\/","og_locale":"en_US","og_type":"article","og_title":"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail - Solypse","og_description":"Un rapide article pour expliquer comment envoyer et recevoir des emails avec talend en utilisant le service Google de messagerie gmail.","og_url":"https:\/\/www.solypse.com\/en\/talend-gmail-pieces-jointes\/","og_site_name":"Solypse","article_published_time":"2018-01-29T20:10:26+00:00","article_modified_time":"2022-04-13T20:29:58+00:00","author":"Athi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Athi","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#article","isPartOf":{"@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/"},"author":{"name":"Athi","@id":"https:\/\/www.solypse.com\/#\/schema\/person\/ad5690a668df908894015a56065489b0"},"headline":"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail","datePublished":"2018-01-29T20:10:26+00:00","dateModified":"2022-04-13T20:29:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/"},"wordCount":1044,"publisher":{"@id":"https:\/\/www.solypse.com\/#organization"},"image":{"@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage"},"thumbnailUrl":"","keywords":["gmail","imap","job design","pop","smtp","talend","tuto"],"articleSection":["Data integration"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/","url":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/","name":"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail - Solypse","isPartOf":{"@id":"https:\/\/www.solypse.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage"},"image":{"@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage"},"thumbnailUrl":"","datePublished":"2018-01-29T20:10:26+00:00","dateModified":"2022-04-13T20:29:58+00:00","description":"Un rapide article pour expliquer comment envoyer et recevoir des emails avec talend en utilisant le service Google de messagerie gmail.","breadcrumb":{"@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/www.solypse.com\/talend-gmail-pieces-jointes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.solypse.com\/"},{"@type":"ListItem","position":2,"name":"Extraire et envoyer des pi\u00e8ces jointes avec Talend et Gmail"}]},{"@type":"WebSite","@id":"https:\/\/www.solypse.com\/#website","url":"https:\/\/www.solypse.com\/","name":"Solypse","description":"Architecting growth through technology","publisher":{"@id":"https:\/\/www.solypse.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.solypse.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.solypse.com\/#organization","name":"Solypse","url":"https:\/\/www.solypse.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.solypse.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.solypse.com\/wp-content\/uploads\/2015\/06\/LOGO_SOLYPSE_BLANC.png","contentUrl":"https:\/\/www.solypse.com\/wp-content\/uploads\/2015\/06\/LOGO_SOLYPSE_BLANC.png","width":319,"height":136,"caption":"Solypse"},"image":{"@id":"https:\/\/www.solypse.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.solypse.com\/#\/schema\/person\/ad5690a668df908894015a56065489b0","name":"Athi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.solypse.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8cb9d3a7e661f26506eefea7c01d8a62b33dda09e2251a5b29b5fa7016272374?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8cb9d3a7e661f26506eefea7c01d8a62b33dda09e2251a5b29b5fa7016272374?s=96&d=mm&r=g","caption":"Athi"}}]}},"_links":{"self":[{"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/posts\/20109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/comments?post=20109"}],"version-history":[{"count":3,"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/posts\/20109\/revisions"}],"predecessor-version":[{"id":21014,"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/posts\/20109\/revisions\/21014"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/menu-items\/18440"}],"wp:attachment":[{"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/media?parent=20109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/categories?post=20109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.solypse.com\/en\/wp-json\/wp\/v2\/tags?post=20109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}