Configurando servidor para envío de emails (SMTP)

Escrito por Javier

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.

Visto: 1691

Comentarios  

0 #1 johhny 10-01-2018 06:11
Hi,
my smtpproc failed (please check below), not sure why its failed,please guide me. Im using v z1.10 ,if possible please share your hercules conf file. i doubt in my hercues conf makes this issue
=============================
PSW AT TIME OF ERROR 078D1000 91A023D8 ILC 2 INTC 0D
ACTIVE LOAD MODULE ADDRESS=11A003A8 OFFSET=00002030
IEF450I SMTPPROC SMTPPROC - ABEND=S4C5 U0000 REASON=77A53217 759
TIME=07.57.58
========================
Citar

Escribir un comentario


Código de seguridad
Refescar