• principal_3

    Desde 2015, enseñando sobre el sistema operativo z/OS de IBM en esta web. z/OS se utiliza en máquinas llamadas Mainframe.

  • principal_1

    Para realizar el contenido, utilizo el producto de IBM llamado z/Development and Test Environtment Personal Edition. Este software permite emular un Mainframe y así poder utilizar z/OS para aprender.

  • principal_2

    Es utilizado por grandes empresas (bancos, aseguradoras...). Aquí aprenderás a instalar y configurar productos relacionados con z/OS.

  • principal_4

    ADCD es una distribución de z/OS que contiene productos de IBM como IMS, DB2, CICS, ZOWE, TWS, NetView, System Automation, etc.

Configurando servidor para envío de emails (SMTP)

Esta vez vamos a configurar la tarea SMTP de z/OS para poder enviar emails, por ejemplo, por JCL. Antes de llevar a cabo esta configuración, es necesario tener bien configurado el TCPIP (Configurando TCPIP en zOS). Si tenemos esa parte hecha, podemos empezar a configurar la tarea SMTP.

Empezamos buscando la librería TCPIP.SEZAINST.

 

Dentro de esta librería, buscamos el miembro SMTPPROC. Este será la tarea que arranquemos para que se envíen los emails. Lo copiamos a nuestra librería de procedimientos (PROCLIB), en mi caso, ADCD.Z113.PROCLIB.

 

Vamos a la librería dónde acabamos de copiar el miembro SMTPPROC y lo editamos.

 

Dentro de este miembro, nos tenemos que fijar en dos cosas. La primera es la DD “CONFIG”. Ahí se indica cual es el archivo de configuración que usamos, por defecto, TCPIP.SEZAINST(SMTPCONF).

NOTA: Si no queremos modificar el original, podemos copiar el miembro SMTPCONF otra librería y poner la DD “CONFIG” el nombre de esa librería.

 

Seguimos bajando hasta el final y veremos la segunda cosa en la que nos tenemos que fijar. En la DD “SYSTCPD”, debemos poner el miembro “TCPDATA” que estemos usando para la configuración TCPIP.

 

Una forma de saber cómo se llama esa librería podría ser:

Entramos en el miembro TCPIP de nuestra PROCLIB, buscamos la DD “SYSTCPD” y vemos la librería que usamos. En mi caso, el fichero que uso es ADCD.Z113.TCPPARMS(TCPDATA).

Aprovechando que estamos viendo la tarea TCPIP, buscamos la DD “PROFILE” y nos apuntamos la librería que estamos usando ya que lo editaremos más adelante.

 

Ahora vamos a empezar a editar los ficheros. Empezaremos por el fichero de configuración de SMTP, en mi caso, se trata del miembro SMTPCONF de la librería TCPIP.SEZAINST.

 

Una vez dentro, bajamos y en el “campo” BADSPOOLFILEID pondremos un ID de usuario que tenga permisos en SMTP. Yo voy a usar IBMUSER.

NOTA: En este enlace hay una descripción de todos los parámetros del fichero de configuración

http://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.halz001/summaryofsmtpconfigstatements.htm

 

Seguimos bajando hasta el “campo” MAILFILEDSPREFIX. Aquí tenemos que poner el prefijo de los dataset para la cola de emails. Yo voy a usar IBMUSER, pero se puede crear otro HLQ que se llame SMTP.

 

Más abajo, en el parámetro “POSTMASTER”, también pondremos IBMUSER.

 

Seguimos bajando hasta encontrar el texto “SMSGAUTHLIST”. Ahí debemos añadir los usuarios que queremos que tengan permisos para usar comandos de SMTP. En mi caso, IBMUSER.

 

Seguimos bajando y comentamos la línea “GATEWAY”, poniendo un punto y coma (;) delante, ya que no usaremos esa función, de momento.

 

Si tenemos algún problema cuando intentemos mandar correos, podemos quitar el punto y coma (;) al parámetro “DEBUG” para tener mayor nivel de información y poder solucionar la incidencia.

 

En este archivo no haremos más cambios. Ahora vamos la librería de parámetros de TCPIP, en mi caso, ADCD.Z113.TCPPARMS. Empezamos editando el miembro “PROFILE” que usamos en la tarea TCPIP y que habíamos visto en pasos anteriores. En mi caso se trata del PROF2.

 

Buscamos el parámetro “AUTOLOG” y añadimos la tarea SMTPPROC. Esto lo hacemos para que, cuando arranque la tarea TCPIP, arranque automáticamente la tarea SMTPPROC.

     SMTPPROC             ; SMTP Server        

NOTA: El nombre de la tarea que pongamos tiene que ser el mismo que si la arrancásemos mediante el comando “start” por Consola. No vale con poner SMTP, si la tarea se llama SMTPPROC.

 

Seguimos bajando hasta el parámetro “PORT” y le vamos a asignar el puerto 25 a la tarea SMTPROC.

    25 TCP SMTPPROC            ; SMTP Server 

NOTA: El nombre de la tarea que pongamos tiene que ser el mismo que si la arrancásemos mediante el comando “start” por Consola. No vale con poner SMTP, si la tarea se llama SMTPPROC.

 

Ya no tenemos que hacer más cambios en este fichero. Ahora vamos a editar el miembro TCPDATA que habíamos apuntado antes.

 

Aquí tenemos que hacer dos cambios. El primero es el parámetro “DOMAINORIGIN”, le pondremos un nombre de dominio que luego aparecerá como remitente cuando enviemos los correos.

NOTA: También podemos poner un nombre de “HOSTNAME”.

 

El último cambio que tenemos que hacer es MUY IMPORTANTE. Vamos a añadir los DNS para que los dominios puedan ser resueltos al enviar los correos. Para ello, buscamos el parámetro “NSITERADDR” y ponemos las dos IPs de los DNS de Google, por ejemplo.

NSINTERADDR  8.8.8.8 

NSINTERADDR  8.8.4.4 

 

Ya hemos terminado de editar todas las configuraciones, ahora vamos a parar y a arrancar la tarea TCPIP desde la Consola. Para pararla pondremos “P TCPIP” y la arrancaremos con “S TCPIP”.

 

Una vez que haya arrancado la tarea TCPIP, comprobamos, en SDSF, que la tarea SMTPPROC ha arrancado automáticamente.

 

Por último, vamos a hacer una prueba para confirmar que funciona. Para ello, submitimos el siguiente JCL. Hay que cambiar los parámetros “MAIL FROM”, “RCPT TO” y “To:” con la dirección de correo a la que lo queremos enviar.

//MAILSMTP  JOB MSGCLASS=B,PRTY=12,MSGLEVEL=(2,1)                  

//IEBGENER EXEC PGM=IEBGENER                                       

//SYSIN DD DUMMY                                                    

//SYSUT1 DD *                                                      

HELO ADCD113

MAIL FROM:<Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>                                                        

RCPT TO:<Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>                                

DATA                                                               

To:   <Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.>                                  

Subject: PRUEBA EMAIL MAINFRAME                                    

                                                                    

VAMOS A PROBAR A ENVIAR UN CORREO DESDE EL EMULADOR DE MAINFRAME   

                                                                   

HEMOS SALTADO UNA LINEA                                            

ESTE CORREO HABRA LLEGADO COMO SPAM. GMAIL RECHAZA AUTOMATICAMENTE 

ESTOS CORREOS, YO PRUEBO CON HOTMAIL.                              

.                                                                  

QUIT                                                                

/*                                                                 

//SYSUT2 DD SYSOUT=(B,SMTPPROC)                                   

//SYSPRINT DD SYSOUT=A                                            

 

NOTA: En la DD “SYSUT2”, hay que poner el nombre de la tarea SMTP, en mi caso, se llama SMTPPROC.

 

Comprobamos en SDSF que el job ha terminado bien y en la tarea SMTPPROC que el correo ha sido enviado.

 

Por último, comprobamos que hemos recibido el correo en la dirección indicada.

NOTA: Puede llegar como SPAM. En GMAIL me ha dado error al recibirlo o ha tardado mucho en llegar.

Publish modules to the "offcanvs" position.