Ultimo aggiornamento: 14-Mag-2019

Configurazione SMTP

In questo articolo riassumiamo tutti i passi da eseguire per configurare il servizio SMTP su IBM i.
La guida per la configurazione è aggiornata anche con i nuovi parametri aggiunti dalla versione IBM i 7.2.

Vengono illustrati sia i comandi fruibili da riga comandi 5250 sia da interfaccia grafica di Navigator for i.

Occorre essere collegati con un profilo di classe *SECOFR.

Sommario

Configurazione servizio SMTP
Controllare lo stato del servizio
Configurazioni opzionali
Riavvio del servizio “a freddo”
Verifica comunicazione con server SMTP tramite TelNet
Come inviare un’email?

Configurazione servizio SMTP

  • Modifica informazioni dominio: menu CFGTCP opz. 12 oppure comando CHGTCPDMN. Impostare il nome host (HOSTNAME) e il nome dominio (DMNNAME).
    P.es. CHGTCPDMN HOSTNAME('MYIBM') DMNNAME('WORKGROUP')

Impostare uno o più indirizzi per i server DNS (parametro INTNETADR).

Oppure da Navigator for i espandere dal menu dei task la voce Rete > Tutte le attività > Configurazione TCP/IP > Proprietà configurazione TCP/IP.

  • Tabella host: menu CFGTCP opz. 10 oppure comando ADDTCPHTE. Aggiungere una voce per abbinare all’indirizzo IP di IBM i il nome-host e nome-host.nome-dominio (quelli impostati al punto precedente). P.es.:
Indirizzo                         Nome            
internet                          host            
192.168.1.100                     MYIBM.WORKGROUP
                                  MYIBM

Oppure da Navigator for i espandere dal menu dei task la voce Rete > Tutte le attività > Configurazione TCP/IP > Gestisci tabella host.

I punti appena descritti sono essenziali anche il funzionamento di altri servizi TCP/IP (p.es. NetServer), quindi potrebbero essere già stati configurati in precedenza. In tal caso non serve modificarli, o se si desidera modificarli è opportuno poi controllare il corretto funzionamento anche degli altri servizi.

  • Attributi SMTP: menu CFGTCP opz. 20 Configurazione applicazioni TCP/IP, quindi opz. 12 Configurazione SMTP, quindi opz. 3 Modifica attribuiti SMTP oppure comando CHGSMTPA.
    • server ad avvio automatico (AUTOSTART) = *YES
    • Tipo indirizzario e-mail (DIRTYPE) = *SDD (parametro disponibile da IBM i 7.2). Impostandolo a *SDD si ottiene un risultato congruente con le release precedenti.
      Se si utilizza uno dei nuovi parametri *SMTP o *SMTPMSF per ogni utente che invia l’email deve essere aggiunto l’indirizzo email corrispondente al profilo con il comando ADDUSRSMTP. Nel caso in cui si desideri importare tutti gli utenti dall’indirizzario *SDD all’indirizzario *SMTP/*SMTPMSF si può utilizzare il comando STRIMPSMTP.
    • Registrazione automatica (AUTOADD) = *NO
    • Prefisso ID utente (USRIDPFX) = QSM
    • Indirizzo (ADDRESS) = QSMRMTAD
    • Nome sistema (SYSNAME) = TCPIP
    • Tipo tabella degli alias (TBLTYPE) = *SYSTEM
    • Router della posta (MAILROUTER) = indirizzo o nome del server SMTP che spedirà le email (p.es. da impostare per far spedire email a server Exchange aziendale) oppure *NONE. L’instradamento (ovvero l’impostazione di MAILROUTER diverso da *NONE) è stato dichiarato obsoleto dalla RFC2821 (cap. 3.7). Si consiglia di impostarlo a *NONE.
      Impostando il parametro MAILROUTER a *NONE è importante aver impostato correttamente i server DNS (vedi primo punto della presente guida di configurazione).
    • Inoltro server mailhub (FWDHUBSVR): segue la stessa logica di impostazione del parametro MAILROUTER.
    • Firewall (FIREWALL) = *YES (questo parametro non viene utilizzato se MAILROUTER è *NONE. Da 7.2 questo parametro è valido solo se DIRTYPE è *SDD)

Oppure da Navigator for i espandere dal menu dei task la voce Rete > Server > Server TCP/IP. Quindi dall’elenco selezionare il servizio SMTP.

Dal menu Azioni scegliere la voce Proprietà

Verranno mostrate le diverse pagine per la configurazione degli attributi SMTP:

  • Servizio di distribuzione: se si desidera utilizzare il comando SNDDST per inviare le email è necessario aggiungere una voce indirizzario INTERNET e configurare il servizio di distribuzione per instradamento a SMTP gateway alla voce appena creata.
ADDDIRE USRID(INTERNET GATEWAY) USRD(‘Context switching entry’) USER(*NONE) SYSNAME(TCPIP) MSFSRVLVL(*USRIDX) PREFADR(NETUSRID *IBM ATCONTXT)

CHGDSTA SMTPRTE(INTERNET GATEWAY)
  • Allegati grosse dimensioni: per evitare lo split di messaggi con allegati di grosse dimensioni bisogna creare l’area dati QTMSNOSPLT
CRTDTAARA DTAARA(QUSRSYS/QTMSNOSPLT) TYPE(*CHAR) LEN(1) VALUE(' ') AUT(*ALL)

Controllare lo stato del servizio

I lavori che gestiscono il servizio SMTP sono:

Lavoro QTSMTP:  se non fosse attivo eseguire STRTCPSRV *SMTP
Lavori per SMTP server: QTSMTPSRVD, QTMSMTPSRVP
Lavori per SMTP client: QTSMTPCLTD, QTSMTPCLTP
Uno o più lavori QMSF: se non fossero attivi eseguire STRMSF *CLEAR

Da Navigator for i espandere dal menu dei task la voce Rete > Server > Server TCP/IP. Quindi dall’elenco selezionare il servizio SMTP. Dal menu Azioni scegliere la voce Lavori server:

Configurazioni opzionali

Registrazione su giornale

Nel caso sia necessario effettuare dei controlli approfonditi sul servizio SMTP (configurato con il parametro DIRTYPE = *SDD) a seguito di anomalie nell’invio della posta si può attivare la registrazione su giornale impostando CHGSMTPA JOURNAL(*YES) oppure da Navigator for i aprendo la pagina di configurazione degli attributi SMTP occorre selezionare la voce “Abilita voci di giornale”.  Il giornale è QUSRSYS/QZMF.

Se invece si configura il servizio SMTP con il parametro DIRTYPE = *SMTP o *SMTPMSF si può più semplicemente utilizzare il comando WRKSMTPEMM.

Configurare l’autenticazione sul server SMTP

Confronta il documento tecnico “IBM How To Configure the SMTP Client To Use SMTP Authentication with a SMTP Relay” n. N1018618.

Una guida utile per configurare il servizio SMTP impostando come MAILROUTER un server esterno che richieda una connessione SSL su porta 465 la si può trovare sul blog di Zenovalle: Un tunnel per la posta.

Riavvio del servizio “a freddo”

In caso di problemi col servizio SMTP potrebbe rendersi necessario effettuare un “cold start”, ovvero un riavvio del servizio “pulito”.

  1. ENDMSF *IMMED
  2. ENDTCPSVR *SMTP
  3. CRTDTAARA QUSRSYS/QTMSCLEAN TYPE(*CHAR) LEN(1) VALUE('c')
  4. STRTCPSVR *SMTP
  5. STRMSF *CLEAR

Controllare eventuali joblog nelle stampe del profilo QTCP.
Da IBM i 7.2 per effettuare un “cold start” è sufficiente chiudere il servizio. Impostare CHGSMTPA COLDSTART(*YES) e riavviare il servizio. Dopo il riavvio il parametro COLDSTART viene automaticamente reimpostato a *NO.
Da Navigator for i il parametro COLDSTART corrisponde all’opzione “Elimina contenuto posta non elaborata all’avvio” della pagina di configurazione degli attributi SMTP.

Verifica comunicazione con server SMTP tramite TelNet

Se si imposta nella configurazione attributi SMTP il parametro MAILROUTER diverso da *NONE e quindi si specifica l’indirizzo IP di un server SMTP esterno (p.es. il server Exchange aziendale) a cui instradare la consegna delle email, potrebbe essere necessario effettuare dei test sull’esito positivo della comunicazione tra IBM i e il server SMTP.

Da riga comandi digitare

TELNET RMTSYS('indirizzo-ip-server-smtp') PORT(25)

Se il server SMTP è raggiungibile sulla porta 25, verrà aperta una sessione dove poter digitare i comandi del server SMTP.
Usualmente viene visualizzata una stringa di benvenuto simile alla seguente:

220 nomeserver ESMTP ready

Alcuni server SMTP richiedono che il primo comando da digitare sia

HELO nome_dominio

Per effettuare un test di invio email digitare il comando per impostare il mittente

mail from:<mittente@dominio.com>

Se tutto ok il server risponde con il codice

250 OK

Digitare il comando per impostare il destinatario dell’email

rcpt to:<destinatario@dominio_remoto>

Se tutto ok il server risponde con il codice

250 OK

Digitare il comando

data

Il server risponde con il codice 354.

Quindi scrivere il testo del messaggio. Premere Invio.
Digitare un punto (.) e premere Invio.

Se tutto ok il server risponde con

250 Queued id=0xc00587d1

e all’indirizzo specificato col comando rcpt si riceverà un’email.

Chiudere la sessione digitando il comando quit.

Come inviare un’email?

Dopo aver configurato il servizio SMTP ci sono diversi modi e diversi software che consentono di inviare email da IBM i. Senza entrare nei dettagli di ogni soluzione, elenco i comandi e API forniti da IBM e un tool molto ben fatto:

  • SNDDST: send distribution
    Attenzione: l’utente che invia email deve essere iscritto nel System Distribution Directory (SDD).
  • SNDSMTPEMM (da IBM i 6.1): send SMTP e-mail message.
    Attenzione: se negli attributi del servizio SMTP si imposta  DIRTYPE(*SDD) l’utente che invia email deve essere iscritto nel System Distribution Directory (SDD) e deve avere un nome smtp definito tramite WRKNAMSMTP. Se invece si imposta DIRTYPE(*SMTP) o DIRTYPE(*SMTPMSF) l’utente che invia email deve essere iscritto tramite il comando ADDUSRSMTP.
  • API QtmmSendMail: send MIME mail
  • API QzmfCrtMailMsg: create Mail Message
  • API QtmsCreateSendMail: create and send MIME E-mail
  • Mime & Mail dal sito Easy400.net

Bibliografia