vrfy(1) | General Commands Manual | vrfy(1) |
vrfy - Verify electronic mail addresses
vrfy [options] [-v] address
[host]
vrfy [options] [-v] -f [file] [host]
vrfy [options] [-v] -p domain
vrfy [options] [-v] -T domain
[name]
vrfy is a tool to verify electronic mail addresses. The only required parameter is the address to be verified. The actual verification will be carried out at the remote machine where mail to the given address would normally be delivered. This may be a mail exchange host and not the final destination host. If an explicit host is given as the second argument on the command line, the specified address is verified at that machine.
The output of the program shows whether or not the address can be handled at the contacted host. Error messages will be printed if the address is invalid. If the address is recognized, the output shows the remote host's notion of the (possibly translated) address. If it represents a local user at that host, additional information about the user may be displayed.
Note that if the address is accepted by the contacted host, but this is not the final destination host, one still cannot be sure that the address represents a valid recipient.
It is a handy tool to verify local mail addresses.
If you have set up a .forward file, you can verify your own address to check
that the forwarding is done properly.
If you specify an arbitrary name, you can check whether this resolves to any
valid recipients.
Some flags put the program in a special operation mode.
If the -f option is specified, the program enters a special file mode. The (optional) parameter is the name of a file containing electronic mail addresses, such as used for mailing lists. Verification of all addresses present in the file is attempted. If no filename is specified, vrfy acts as a filter and the addresses to be verified are read from standard input.
If the -p option is specified, the program enters a special ping mode. The required parameter is an electronic mail domain for which it will be verified whether the corresponding mail exchangers are currently responding to SMTP requests.
If the -T option is specified, the program enters a special etrn mode. The required parameter is an electronic mail domain. An ESMTP ETRN command will be delivered to its corresponding mail exchangers. An optional name is used as the ETRN parameter. If not specified, the local host name is used instead. ETRN is defined in RFC 1985, and is implemented in sendmail 8.8.
If the -L level option is specified, the received replies to an address verification are recursively verified up to level levels deep. This is handy for checking mailing list expansions, and detecting possible mail forwarding loops.
Recursion stops automatically if the reply represents a local recipient address, or in case a forwarding loop is detected. If the received reply is the same (modulo comments) as the address that was asked for, the request is retried at its domain itself, unless this was the machine we just queried, or it is not an internet domain host.
The option -R is equivalent to ``-L 17''. This is the maximum hop count normally used during actual mail relaying. This option also implies ``-s''.
Default options and parameters can be preset in an environment variable VRFY_DEFAULTS using the same syntax as on the command line. They will be evaluated before the command line arguments.
vrfy sets up an SMTP connection with the remote host where the verifying is to be carried out. SMTP is the TCP/IP protocol for electronic mail exchange.
If the given host does not speak SMTP, the error message "Connection refused" is printed.
If the SMTP protocol is blocked, a "Host is unreachable" message is printed.
If the remote host doesn't respond in time, you will get a "Connection timed out" message.
The remote host must support the SMTP VRFY command for doing the verification. If not, a "Command not implemented" is printed.
The following strategy is used to find the remote host where the verification is to be carried out.
Environment variables can be used to overrule several compiled-in defaults.
This is your nearest host running the sendmail daemon. It is contacted in case local addresses without a domain are given. Also (unless the -l is given) when domain parsing errors were encountered, assuming that this host can give a more appropriate error message. The default value is localhost.
This host is contacted when a .uucp address is specified. You probably won't get much useful information. The default value is localhost.
This host is contacted when a .bitnet or .earn address is specified. You probably won't get much useful information. The default value is localhost.
This host is contacted when a single unqualified host name could not be resolved to a fully qualified MX domain host. It is assumed that single hosts in your own domain can be resolved, i.e. they have an MX record. It depends on your local strategy for unqualified hosts what they mean: a .uucp host, a .bitnet host, or just a local host without MX. The default value is localhost.
Some hosts have a lousy VRFY handling. Sometimes the command is not implemented at all. Other hosts are willing to verify only local recipients. The "-n" option may be necessary.
Other servers may refuse the VRFY command for privacy reasons.
If the verification is not performed at the final destination host, one cannot be sure that the given address is valid.
Note the following subtle differences if you want to check an existing mailing list list. Suppose that ``list-users'' is the local alias to include the actual file ``/mail/lists/list-users'' with recipients.
The command ``vrfy list-users'' will verify the proper expansion of the mailing list at the local host. No remote hosts are contacted to verify addresses.
The command ``vrfy -f /mail/lists/list-users'' will verify each individual address at the appropriate remote hosts.
The same effect can be reached when you give the command ``vrfy -L 1 list-users''. Use a higher recursion level if you want to see further expansion of the mailing list.
Eric Wassenaar, Nikhef-H, <e07@nikhef.nl>
971114 |