SMTP is taking mail from the JES spool to send out, but it is not sending the mail to the remote mail servers.
SMTP is trying to send mail to a remote mailer that is not responding or SMTP is not using the expected remote mailer.
Resolving the problem
From TSO, issue:
SMSG smtp_proc QUEUE command.
On z/OS 1.9 and above, you can issue the following from the console:
This displays the mail queued for specific IP addresses. An example of this is:
Msg from SMTP: * ----- Mail Queues ----- Msg from SMTP: * Spool Queue: 0 Msg from SMTP: * R: 111.222.333.444 : 10 HostName.DomainName Msg from SMTP: * Undeliverable Queue: 0 Msg from SMTP: * --- Resolver Queues --- Msg from SMTP: * Process Queue: 0 Msg from SMTP: * Send Queue: 0 Msg from SMTP: * Wait Queue: 0 Msg from SMTP: * Retry Queue: 0 Msg from SMTP: * Completed Queue: 0 Msg from SMTP: * Error Queue: 0
In this case, there are 10 pieces of mail queued up on the retry queue for 111.222.333.444. The HostName.DomainName has be resolved to the IP address of 111.222.333.444.
Ensure that you can ping these IP addresses and telnet to these IP addresses using port 25 from TSO. If you are unable to open a telnet connection, then SMTP is not able to open a connection either.
To investigate why SMTP cannot open the connection, answer these questions:
- Is there a firewall that is blocking these connections?
- Does the remote mail server need to be configured to accept connections from the mainframe?
If there is a firewall involved and it is configured such that you must send all external mail to one mail server, code the IP address of this mail server in the IPMAILERADDRESS configuration statement or the hostname of this mail server in the IPMAILERNAME configuration statement. SMTP will send it to the IPMAILERADDRESS if it is unable to resolve the hostname. If SMTP has access to a domain name server, it most likely will be able to resolve the hostname. If IPMAILERNAME is used, SMTP can send all mail or just unresolved mail to the IPMAILERNAME, depending on how this is coded.
Force SMTP to use the IPMAILERADDRESS. If you are running z/OS 1.2 or higher, code RESOLVERUSAGE NO in the SMTP configuration file. In earlier releases, code a SYSTCPD DD statement for SMTP to point to a separate TCPIP.DATA file. In the TCPIP.DATA file, do not code a NSINTERADDR statement. This way, SMTP uses the local host tables. The local host tables should be empty so that SMTP is not able to resolve external hostnames, and sends the mail to the IPMAILERADDRESS.
If mail is queued up for the wrong IP address, from TSO issue:
SMSG smtp_proc EXPIRE ip_address
Or on z/OS 1.9 and above, from the console issue:
This causes the domain name resolution for mail queued for delivery to this IP address to expire. SMTP will again try to resolve the IP addresses for this mail if it is still within the retry time window. Note, to issue this command, the user must be in SMSGAUTHLIST.