The
V
configuration command was added to V8
sendmail
to prevent old versions of configuration files from breaking when
used with V8
sendmail
. The syntax for the
V
configuration
command looks like this:
V
level
V8.1 and above
V
level/vendor
V8.6 and above
Here,
level
is a positive integer, and
/vendor
is
a string. We will cover the vendor part soon.
If
level
is higher than
the maximum allowed for the current version,
sendmail
prints the following warning and accepts the
value:
Warning: .cf version level (
lev
) exceeds program functionality (
max
)
If
level
is less than 0 or if the
V
configuration
command is omitted, the default
level
is 0.
The effects of the various version levels are relatively minor.
As
sendmail
continues to develop, they may become more pronounced.
Currently, the version levels are as follows:
-
0
-
The check for a valid shell in
/etc/shells
is ignored
(see
Section 22.8.4, "The /etc/shells file"
).
-
0-1
-
MX records are looked up with the RES_DEFNAMES and
RES_DNSRCH cleared.
The high bit is always stripped from the body of every mail message.
-
2+
-
The
sendmail
program automatically adds a
-a.
to the "
host host
" map
if that map isn't declared in the configuration file.
RES_DEFNAMES and RES_DNSRCH are not turned off as they were for
older versions.
Rule set 5 behavior is enabled.
-
0-2
-
Set
UseErrorsTo
(
l
) option
(see
Section 34.8.74, UseErrorsTo (l)
) to true automatically.
-
2+
-
Automatically
sets the
$w
macro to be the short name instead of the
fully qualified local hostname (
$j
still contains
the fully qualified name and
$m
the local domain).
-
3+
-
You may use the new-style comments.
-
0-5
-
For V8.7 and above
sendmail
, level 5 or lower causes the
F=5Aw:|/@
flags to automatically be set for the
local
deliver agent and the
F=o
flag to automatically be set for the
prog
and
*file*
delivery agents.
-
0-5
-
Looking up MX records with
HasWildcardMX
listed with the
ResolverOptions
(
I
)
option (see
Section 34.8.55, ResolverOptions (I)
), causes RES_QUERY
to be used in place of RES_SEARCH.
Default the
ColonOkInAddr
option (see
Section 34.8.9, ColonOkInAddr
)
to false.
-
0-6
-
Set the
SmtpGreetingMessage
option (see
Section 34.8.65, SmtpGreetingMessage or $e
) with the value of
$e
if
$e
has a value.
Set the
OperatorChars
option
(see
Section 34.8.45, OperatorChars or $o
) with the value of
$o
if
$o
has a value.
Beginning with V8.8
sendmail
, a level of 6 or less causes the
F=q
flag (see
Section 30.8.36, F=q
) for the
local
,
prog
, and
*file*
delivery agents to be automatically set.
-
7
-
As of V8.8, the current version.
Beginning with V8.6
sendmail
, the
level
for the version
command can be followed by the identity of the vendor.
The form of that declaration looks like this:
V
level/vendor
V8.6 and above
The
/
must immediately follow the
level
with no intervening
space. There may be arbitrary space between the
/
and the
vendor
.
The string that is the vendor specification may either be one of the following:
-
Berkeley
-
This is a configuration file based on the BSD distribution and is the one you
get when you build and install from the source.
As of V8.8, this declaration does nothing. If you use this configuration file
with another vendor's version of
sendmail
, the
Berkeley
tells
the other version that you are using a configuration file based on the BSD
source.
-
Sun
-
This is a configuration file intended for use with Sun's release of
sendmail
. If it is declared and if you are running Sun's
sendmail
, the enhancements documented in
Appendix
Appendix D,
Sun Enhancements
, become available for your use.
If you are not running Sun's
sendmail
, an error is printed.
If any other string appears in the
vendor
part,
sendmail
will
print the following error and ignore that vendor declaration:
invalid V line vendor code:
bad vendor name here
Note that vendors other than those shown may have customized their
sendmail
too, so this may not be a complete list.
[3]