Pentaho Data Integration con Gmail: enviando correos electrónicos desde un job

No me voy a extender, este post es bastante sencillo y útil a su vez. De hecho, debería ser parte de una guía de 101 cosas que deberías en lo posible siempre realizar cuando construyes un proceso de ETL con Pentaho Data Integration y quieres notificar que ha finalizado, que ha ocurrido un error, o hasta enviar algún reporte o archivo adjunto mediante el paso Mail empleando Gmail.
Pentaho Data Integration tiene el paso Mail disponible tanto para Jobs como para Transformaciones. La recomendación es emplearlo en lo posible a nivel de transformaciones.
Para poder enviar correos con Pentaho Data Integration a con Gmail debes realizar los siguientes pasos.
Paso 1. Habilitar el acceso de aplicaciones poco seguras de Gmail
Tener una cuenta Gmail (Duh!) configurada para que aplicaciones pocos seguras puedan autenticarse con ella (Wut?!). Para habilitar el acceso a aplicaciones poco seguras con Gmail accede a través del siguiente enlace y activa «Permitir acceso de aplicaciones poco seguras».

Paso 2. Diseñar un Job sencillo con el paso Mail para enviar correos desde Pentaho Data Integration con Gmail
Diseña un Job sencillo. La figura siguiente muestra un Job dummy. Este Job tiene una transformación dummy (no invoca nada), y para monitorear el resultado de la ejecución de esta transformación, se añaden dos pasos Mail, uno para cuando la ejecución falla (flujo rojo) y otro cuando se ejecuta de manera exitosa (flujo verde)

Paso 3. Configurar el paso Mail de Pentaho Data Integration con Gmail
El paso Mail tiene 4 pestañas. La pestaña «Addresses» y las pestañas «Server» deben estar correctamente configuradas para que el paso Mail funcione de manera correcta.
En la pestaña «Addresses» los campos «Destination address», «Sender name» y «Sender address» son obligatorios. El resto son opcionales.
Llena los campos «Destination address» con la dirección destino deseada.
Llena el campo «Sender address» con la dirección de Gmail a emplear.

En la pestaña «Server», es importante configurar correctamente todos los campos de la siguiente manera para poder enviar correos con Gmail
SMTP Server: smtp.gmail.com
Port: 465
Use authentication: checked / marcada / yes / si
Authentication user: dirección de Gmail a emplear
Authentication password: contraseña de la dirección de Gmail a emplear
Use secure authentication: checked / marcada / yes / si
Secure connection type: SSL

Y estamos listos! Cualquier consulta, o duda, en los comentarios estoy siempre atento para ayudar!
Hola Javier, como se podria configura con un correo corporativo, no con gmail.
Le agradeceria enormemente en lo que me pudiese colaborar.
Hola Javier!
El correo corporativo es de Google Apps? Si es así, es la misma forma. Solo que cambias el nombre de usuario por la cuenta de correo completa de Google Apps, dejando smtp.gmail.com como servidor de correo. Por otro lado, si no es Google Apps, sino un servidor SMTP, pues es sencillo. Solo colocas la url del servidor SMTP y el puerto que esté habilitado para enviar correos. El nombre de usuario y contraseña debe ser una cuenta válida dentro de tu proveedor de correos.
Saludos cordiales
Saludos Cordiales
Javier …. por favor ayudame ….. Me sale el siguiente error…
we can no find server field in the input stream
Hola Javier,
De que manera podría mandar un correo con ficheros de salida de la transformación adjuntos?
Gracias de antemano, saludos.
Disculpa por contestar tarde amigo, la mejor solución para esto es que tengas dos transformaciones. Una que genere los archivos correspondientes, y otra que se encargue de hacer el envio por correo. Para esto naturalmente necesitaras que ambas sean invocadas por un Job. Debes procurar que la transformación que genera los archivos, escriba en el flujo el nombre del archivo lo publique en las variables con el paso ‘Set Variables’. Luego, en la otra transformación emplea el ‘Get Variables’ para obtener la dirección en disco del archivo y adjuntarlo al correo.
Hola,
muy bueno tu articulo.
Existe alguna forma de que en lugar de enviar un correo Pentaho reciba un correo?
Entiendo que seguro podria recibir correos en la cuenta que se configuro como «Sender address» ya que es una cuenta gmail normal, en este caso la pregunta seria:
Puedo de alguna forma leer alguno de estos correos recibidos usando un job o una trasformacion de Pentaho? en particular me interesa poder obtener un archivo anexo de un correo recibido.
Disculpa lo tarde en responder, Jaime.
En algún momento quise hacer algo parecido, pero no lo hice con PDI.
https://stackoverflow.com/questions/36085990/how-to-extract-an-email-attachment-with-pentaho-data-integration
No obstante, aca indican como hacerlo. Espero te sirva.
Saludos y gracias por leer!
Hola muchas gracias fue de gran ayuda tu contenido
Gracias! Me agrada que te haya servido!