System Administration Guide: Network Services

Changes to the FEATURE() Declaration From Version 8.12 of sendmail

Refer to the following tables for information about the specific changes to the FEATURE() declarations.

To use the new and revised FEATURE names, use the following syntax.

FEATURE(`name', `argument')

If you need to build a new file, refer to Changing the sendmail Configuration in Chapter 13, Mail Services (Tasks).

Table 14–25 Additional and Revised FEATURE() Declarations

Name of FEATURE()



Argument: Refer to the example in the following paragraph. 

This new FEATURE() enables you to look for a key in the access map that consists of the sender address and the recipient address. This FEATURE() is delimited by the following string, <@>. sender@sdomain<@>recipient@rdomain is an example.


Argument: friend, which enables a spam-friend test, or hater, which enables a spam-hater test.

A new FEATURE() that delays all checks. By using FEATURE(`delay_checks'), the rule sets check_mail and check_relay are not called when a client connects or issues a MAIL command respectively. Instead, these rule sets are called by the check_rcpt rule set. For details, refer to the /etc/mail/cf/README file.


Argument: This FEATURE()accepts a maximum of two arguments:

  • DNS server name

  • Rejection message

A new FEATURE() that you can include multiple times to check the return values for DNS lookups. Note that this FEATURE() enables you to specify the behavior of temporary lookup failures.


Argument: domain name. 

A new FEATURE() that is an enhanced version of dnsbl, which enables you to check the return values for DNS lookups. For more information, refer to /etc/mail/cf/README.


Argument: None. 

A new FEATURE() that you can also use to apply genericstable to subdomains of $=G.


Argument: For details, refer to the “Release Notes” in

A new FEATURE() that implements LDAP address routing.


Argument: Path name of an LMTP-capable mailer. The default is mail.local, which is LMTP capable in this Solaris release.

A FEATURE() that now sets the delivery status notification (DSN) diagnostic-code type for the local mailer to the proper value of SMTP.


Argument: None. 

A new FEATURE() that you can use to avoid masquerading for the local mailer.


Argument: None. 

A new FEATURE() that you can also use to look up the .domain in the access map.


Argument: canonify_hosts or nothing.

A FEATURE() that now includes the following features.

Enables a list of domains, as specified by CANONIFY_DOMAIN or CANONIFY_DOMAIN_FILE, to be passed to the $[ and $] operators for canonification.

Enables addresses that have only a host name, such as <user@host>, to be canonified, if canonify_hosts is specified as its parameter.

Adds a trailing dot to addresses with more than one component. 


Argument: None. 

A new FEATURE() that turns off sendmail's default setting from m4–generated configuration files to “listen” on several different ports, an implementation of RFC 2476.


Argument: reject, which does not allow the ! token, or nospecial, which does allow the ! token.

A FEATURE() that determines whether to allow the ! token in the local part of an address.


Argument: None. 

A FEATURE() that now provides the full rule sets of a normal configuration, allowing antispam checks to be performed.


Argument: None. 

A new FEATURE() that enables you to preserve the +detail portion of the address when sendmail passes the address to the local delivery agent.


Argument: None. 

A new FEATURE() that enables you to preserve the name of the recipient host, if LUSER_RELAY is used.


Argument: None. 

A new FEATURE() that enables you to select a queue group that is based on the full email address or on the domain of the recipient.


Argument: The domain is an optional argument.

A new FEATURE() that allows relaying if the mail sender is listed as a RELAY in the access map and is tagged with the From: header line. If the optional domain argument is given, the domain portion of the mail sender is also checked.


Argument: None. 

A FEATURE() that you can now use to apply $={VirtHost}, a new class for matching virtusertable entries that can be populated by VIRTUSER_DOMAIN or VIRTUSER_DOMAIN_FILE.

FEATURE(`virtuser_entire_domain') can also apply the class $={VirtHost} to entire subdomains.

The following FEATURE() declarations are no longer supported.

Table 14–26 Unsupported FEATURE() Declarations

Name of FEATURE()



FEATURE(`dnsbl') and FEATURE(`enhdnsbl') replace this FEATURE(), which has been removed.


MASQUERADE_AS(`$S') replaces FEATURE(`remote_mode') in /etc/mail/cf/ $S is the SMART_HOST value in