The Check E-Mail Address command checks the validity of an E-Mail
address. The local-portion of an address is ensured to have proper
syntax. The domain-portion is either syntax checked or checked using
APIs to determine if the domain name exists. To check if the domain
name actually exists, your system must have access to a domain name
server.
For an address like:
JSmith@abc.com'
the 'JSmith' portion is the local-portion and 'abc.com' is the
domain-portion.
Typical commands would be:
CHKMAILADR EMAIL(JSmith@abc.com)
The default of CHKDMN(*SYNTAX) would be used to syntax check the
entire address. See the later section on 'Syntax checking rules'.
If you had specified:
CHKMAILADR EMAIL(JSmith@abc.com) CHKDMN(*INTERNET)
The local-portion would be syntax checked and the domain-portion
would be checked using several APIs which access a domain name
server. See the section on 'Domain name server'. Responses from
these APIs can be very slow and especially if the domain does not
exist. The local-portion is always syntax checked, but does not
ensure that the user exists at the domain.
A Mail Exchange (MX) record must be able to be retrieved in order the
E-mail address domain to be verified. If the local host table is
used for host name resolution, then E-mail addresses for the local
domain will be returned as 'Failure: Domain: No mail exchange records
found and domain name not found.'
The code used to access the internet is derived from that provided by
Scott Klement. See the copyright discussion in the TAAEMLAR program.
CHKMAILADR escape messages you can monitor for
----------------------------------------------
TAA9881 Failure - Text includes reason.
Escape messages from based on functions will be re-sent.
Syntax checking rules
---------------------
** Comments enclosed in parenthesis may appear in both the
local-portion and the domain-portion of an address.
** If the local-portion is not quoted, the first character may
not be a period and no character may be a backslash, a square
bracket, a space, or a @.
** If the local-portion is quoted, any character except the
backslash is valid.
** The first unquoted @ character separates the local-portion
from the domain-portion.
** Characters in the domain-portion must be a-z, or A-Z, or 0-9,
or dash. A dash is not valid in the first position.
** The domain-portion must have at least 2 parts which are
separated by a period.
Valid E-mail syntax Comments
------------------- --------
JSmith@abc.com Simple name
J.Smith@abc.com Period is valid in local-portion
JSmith@abc.def.ghi Three part domain-portion
J(the plumber)Smith@abc.com Comments in parenthesis
"JSmith"@abc.com Quotes are not needed
"J Smith"@abc.com Quotes needed because of blank
"J@Smith"@abc.com Quotes needed because of first @
Invalid E-mail syntax Comments
--------------------- --------
J Smith@abc.com Space in unquoted local-portion
J@Smith@abc.com @ in unquoted local-portion
JSmith@abc Domain-portion has only one part
JSmith.abc.com No @ to separate domain-portion
JSmith@abc$.com $ is invalid in domain-portion
Domain name server
------------------
Use the CHGTCPDMN command to specify the IP addresses of one to three
domain name servers.
Your system must have access to the internet.
Command parameters *CMD
------------------
EMAIL The E-Mail address to be checked. The maximum
length is 1024 bytes.
CHKDMN The type of checking to be performed on the
domain-portion of the E-mail address. The
local-portion of the E-mail address is always syntax
checked.
*SYNTAX is the default to syntax check the
domain-portion of the E-mail address. See the
section on 'Syntax checking rules'.
*INTERNET may be specified to use domain name
servers to check the domain-portion of the E-Mail
address. The domain-portion is not syntax checked.
Specifying *INTERNET requires your system to be
configured with and have access to one or more
domain name servers. (see the previous section on
'Domain name server'). APIs are used, but the
responses can be very slow and especially if the
domain does not exist.
RCLACTGRP A *YES/NO parameter for whether to reclaim the named
activation group TAAEMLAR in which the RPGLE program
TAAEMLAR runs.
*YES is the default which cause the activation group
to be reclaimed when CHKMAILADR returns.
*NO should be specified if you are repetitively
checking E-mail addresses. This will avoid creating
and deleting the activation group. When you are
finished checking E-Mail addresses, use
RCLACTGRP(*YES) to perform cleanup.
Restrictions
------------
To check if the domain name actually exists, your system must have
access to a domain name server.
A Mail Exchange (MX) record must be able to be retrieved in order the
E-mail address domain to be verified. If the local host table is
used for host name resolution, then E-mail addresses for the local
domain will be returned as 'Failure: Domain: No mail exchange records
found and domain name not found.'
Prerequisites
-------------
The following TAA Tools must be on your system:
SNDCOMPMSG Send completion message
SNDESCINF Send escape information
SNDESCMSG Send escape message
Implementation
--------------
For CHKDMN(*INTERNET), your system must be configured with and have
access to one or more domain name servers. See the section on
'Domain name server'.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CHKMAILADR *CMD TAAEMLA QATTCMD
TAAEMLAC *PGM CLP TAAEMLAC QATTCL
TAAEMLAR *PGM RPGLE TAAEMLAR QATTRPG
|