When sendmail first starts up as a listening daemon, it binds to a port on all interfaces or on a particular interface (See this section). It then waits to accept connections from hosts or programs that wish to route mail through it. Those hosts or programs are called " clients ," and when they initiate a connection, it is called a client connection. When a client connects to the local machine, sendmail records the local IP address of the connected-to interface in this ${if_addr} macro. If the address is an IPv4 address, the value stored is just the address: 123.45.67.8 But if the address is an IPv6 address, the address stored is prefixed with a literal IPv6 :. For example: IPv6:3ffe:8050:201:1860:42::1 If the connection was made on the loopback interface, the ${if_addr} macro is undefined. ${if_addr} is available for use in rule sets, and can be useful for rejecting spam or restricting access to a list of particular addresses. Note that a $& prefix is necessary when you reference this macro in rules (that is, use $&{if_addr} , not ${if_addr} ). ${if_addr} is transient. If it is defined in the configuration file or in the command line, that definition can be ignored by sendmail . |