Mostrando entradas con la etiqueta smtp. Mostrar todas las entradas
Mostrando entradas con la etiqueta smtp. Mostrar todas las entradas

martes, 23 de octubre de 2012

Problemas al arrancar el servidor SMTP en iSeries/AS400.

Ya son varias las veces que me he encontrado con el problema de que el día menos pensado no puedo arrancar el servidor SMTP del iSeries ó AS400 (como a mí me gusta llamarlo).

Estamos dando por hecho que el iSeries ó AS400 está bien configurado y el problema se produce de forma inesperada. La configuración del AS400 para enviar email ya la comentamos en el post correspondiente: 

Los motivos pueden ser diversos y no es el objetivo de este post analizarlos, sino otro bien distinto: anotar la secuencia de comandos que en la mayoría de las ocasiones nos permitirá restaurar el servidor SMTP.

Los trabajos de SMTP se ejecutan en el subsistema QSYSWRK, por lo que una visión a los trabajos de este subsistema (WRKSBSJOB SBS(QSYSWRK)) nos puede ayudar a familiarizarnos con ellos. Concretamente, los trabajos de SMTP son los que comienzan por QTSMTP* (también pueden verse con el iNavigator):

Ventana del iNavigator donde podemos ver los trabajos ordenados por cualquier columna
Los pasos a seguir son los siguientes (yo además recomiendo ir controlando en las anotaciones del trabajo y de la QSYSOPR que los mandatos van procesandose de forma correcta antes de seguir con el siguiente mandato en la lista):
  • ENDMSF
    • Finalizar Infraestructura de Servidor de Correo en el subsistema de trabajos del sistema (QSYSWRK).
  • ENDTCPSVR SERVER(*SMTP)
    • Finalizar el servidor SMTP. Si ya está finalizado, que será lo normal si no te arranca, no pasará nada.
  • QSYS/ENDPJ SBS(QSYSWRK) PGM(QTCP/QTMSCLCP)
  • QSYS/ENDPJ SBS(QSYSWRK) PGM(QTCP/QTMSSRCP)
    • Finalizar los trabajos de prearranque del servidor SMTP.
  • STRTCPSVR SERVER(*SMTP)
    • Arrancar el servidor SMTP.
  • STRMSF
    • Arrancar Infraestructura del Servidor de Correo
Espero que esto sirva de utilidad a quien se encuentre con un problema similar. Suerte.

sábado, 22 de enero de 2011

Enviar emails desde el iSeries - AS400 (V6R1)

Hola compañeros, hoy abordamos la tarea de configurar el iSeries-AS400 (el mejor sistema de gestión empresarial que existe) para enviar correo electrónico al exterior. En mis 20 años en el mundo AS400 ya he configurado bastantes máquinas para ello, pero hace unas semanas me tocó volver hacerlo en V6R1 y aquí tenemos los apuntes por si alguien no lo tiene todavía y le puede venir bien.

INDICE:

1. Configurar el dominio TCP/IP
2. Como decirle al iSeries a donde tiene que redireccionar los correos salientes.
a. Especificar en CHGSMTPA el nombre del servidor smtp que vamos a usar y registrar hasta 3 servidores DNS en el iSeries en la configuración del dominio (CHGTCPDMN)
b. Especificar en CHGSMTPA la dirección ip del servidor smtp que vamos a usar. En este caso no es necesario registrar DNS,s en CHGTCPDMN
3. Crear la dirección e ID de usuario que utilizarán los servicios de correo para direccionar el correo cuyo destinatario es una dirección internet, dentro de este sistema y/o la red SNADS, hasta la pasarela SMTP/MIME
4. Especificar en Atributos de la distribución la dirección e ID de usuario que utilizarán los servicios de correo.
5. Enlaces

CONFIGURAR DOMINIO TCP/IP

El mandato Cambiar dominio TCP/IP (CHGTCPDMN) se utiliza para especificar los nombres de dominio y de sistema principal TCP/IP deL iSeries y para configurar la información del Servidor de Nombres de Dominio (DNS).


En esta pantalla podemos especificar las IP de los servidores DNS a usar (Recomendable). Esto es necesario si queremos que el iSeries sepa a donde reenviar los paquetes de servidores o usuarios que no encuentre en local.

Una vez hecho esto podemos probar a ver si funciona haciendo un ping a una web, por ejemplo google:




COMO DECIRLE AL ISERIES DONDE TIENE QUE REDIRECCIONAR LOS CORREOS SALIENTES
En esta parte veremos la configuración de los atributos de SMTP (Mandato CHGSMTPA) usando el iSeries Navigator. Todas estas tareas tienen su correspondiente mandato del Sistema Operativo del iSeries, los cuales suelo usar preferentemente, aunque el iNavigator es más intuitivo.

Seleccionamos Red -> Servidores -> TCP/IP en el Servidor SMTP elegimos ver Propiedades haciendo click con el botón derecho.


En las propiedades SMTP vemos varias pestañas. En la pestaña GENERAL comprobaremos que está activada la opción “Iniciar cuando se inicia TCP/IP” por motivos evidentes.



En la pestaña “Restricciones de retransmisión” podremos indicar quien puede retransmitir correos e incluir diversas opciones, como, por ejemplo, diversos rangos de IPs autorizadas para retransmitir correos.




En esta pestaña podremos referenciarnos a diversas listas negras y además crearnos nuestra propia lista negra.

En la pestaña de autentificación indicaremos el host que usaremos para enviar los correos, así como el usuario y la contraseña, de forma muy similar a la de un cliente de correo.



CREAR EL USUARIO QUE UTILIZARAN LOS SERVICIOS DE CORREO DEL iSERIES
Lógicamente se crea con el mandato CRTUSRPRF, siendo recomendable crear un usuario exclusivo para esta tarea y con menú inicial “*SIGNOFF”.
Añadir el usuario al directorio de distribución con WRKDIRE o bien directamente con ADDDIRE. A continuación vemos el ejemplo del usuario típico que tendrá más de un iSeries:
ADDDIRE USRID(INTERNET GATEWAY) USRD(’Allow SNDDST to send INTERNET Mail’) SYSNAME(INTERNET) MSFSRVLVL(*USRIDX) PREFADR(NETUSRID *IBM ATCONTXT)

En el ID Usuario y dirección debemos poner el usuario y el nombre del sistema, en nivel de servicio de correo un 2 y en dirección preferida un 3.
Con F19 iremos a los nombres SMTP, también accesible a través del mandato WRKNAMSMTP.

Para una información más detallada acerca de esta última tarea podemos ver el artículo

ESPECIFICAR EN LOS ATRIBUTOS DE LA DISTRIBUCION LA DIRECCION E ID DEL USUARO QUE UTILIZARAN LOS SERVICIOS DE CORREO
CHGDSTA SMTPRTE(INTERNET GATEWAY)

Ya podemos probar a enviar correo, aquí tenemos un ejemplo de envío de correo, en este caso, un documento de una carpeta:
SNDDST TYPE(*DOC) DSTD(descripción) TOINTNET(buzon@dominio.com) DOC(documento) FLR(carpeta)


ADDSMTPLE TYPE(*HOSTAUTH) HOSTNAME(susistema.realm.com) USERNAME(receiver) PASSWORD(xxxx)

Convertir tipos de archivo para enviarlos con SNDDST A medida que el servidor iSeries adquiere un papel más destacado en Internet, se requiere un método que permita enviar información fácilmente del OS/400 a los clientes de correo electrónico. Dando por supuesto que el archivo en spool se ha creado previamente y que el archivo físico y la carpeta ya existen, debe convertir el archivo a un formato que se pueda enviar. Las conversiones se realizan utilizando mandatosiSeries, tal como se muestra más abajo. Mueva el archivo en spool a un archivo físico de base de datos.

CPYSPLF FILE(archivoSpl) TOFILE(archivoDB) JOB(trabajo3/trabajo2/trabajo1) SPLNBR(númeroSpool) TOMBR(miembro)

Mueva el archivo físico de la base de datos a una carpeta.
CPYTOPCD FROMFILE(bib/archivoDB) TOFLR(carpeta) FROMMBR(miembro) REPLACE(*YES)

Envíe el documento con el mandato SNDDST, que tiene varias opciones. Este mandato es el más sencillo para enviar una distribución, pero en los enlaces de más abajo vereis que existe una API que es mucho más completa y que particularmente recomiendo.

SNDDST TYPE(*DOC) TOUSRID(direcciónUsuario) DSTD(MAIL) DOC(miembro) FLR(carpeta)

ENLACES
Hay muchos enlaces relacionados, tan sólo hay que buscar SMTP iSERIES en Google, pero os recomiendo dos de ellos interesantes para seguir en el tema. Es posible que no sean los mejores, pero hace muchos años ya que el primero de ellos me sirvió para usar el SMTP Server del AS400 en versión V4R4.

En la siguiente dirección (toda una institución en el mundo AS400 / iSeries) teneis más información sobre el tema, relativo a versiones anteriores.

Y para entrar totalmente en faena y ampliar la información también tenemos el IBM i Information Center (este enlace corresponde a la versión V6R1):

Saludos y suerte, amigos.