This utility configures, deconfigures, or tests for greylistd support
in the given Exim 4 configuration file and Access Control List (ACL).
If no file or ACL name is supplied, changes are made to the default
configuration files and ACLs for your distribution.
The following commands are available:
Adds greylistd statement(s).
Removes existing greylistd statement(s).
Tests for the presence of greylistd statement(s), without making any
changes. A zero exit status indicates that the statement(s) exist(s).
The following options are available:
Normally, the result of the operation is printed on standard error;
this option inhibits output.
Always exit with a zero status, even on failure. If this option is
given, only the result of successful operations are printed.
Normally, if any changes were made to the Exim 4 configuration files,
greylistd-setup-exim4 invokes the Exim 4 init script,
telling Exim to reload its configuration files. This option inhibits
In the statement that is inserted in the Exim 4 configuration file,
the remote host address is one of the items that is passed on to
greylistd. This option causes the host address to be filtered through
a netmask of the given size first. Useful values are between 16 and
31 for IPv4.
Used in conjunction with the add command to insert a statement
suitable for use in an ACL used to validate the SMTP RCPT TO:
command or the message DATA, respectively. This is implicit
when the supplied ACL name contains either of the substrings
"rcpt" or "data" (such as Debian's default
"acl_check_rcpt" and "acl_check_data" ACLs). Otherwise,
this option has to be present for the add command.
greylistd-setup-exim4 add -netmask=24
Adds greylistd statements to any acl_check_rcpt and
acl_check_data ACLs found in any of the following files:
In these statements, the data passed to greylistd includes the host
address filtered through a 24-bit netmask, rather than the host's
unique IP address. This allows for pools of several Mail Sending
Agents (MSAs) within a given network to be treated as a single host.
If successful, Exim 4 is told to reload its configuration files.
If a statement already exists, nothing happens - but the program
exits unsuccessfully (non-zero return code).
greylistd-setup-exim4 remove -quiet
Remove greylisting support from the above configuration files and ACLs.
If greylistd statements exist in these files and ACLs, they are removed,
and Exim 4 will reload its configuration files. The exit code
indicates whether the statements were present and are now successfully
removed; but no results are printed.
If no greylistd statements already exists in the acl_check_rcpt
ACL in the file /etc/exim4/exim4.conf.template, one is
inserted. In this case, the Exim 4 daemon is then NOT told to reload
its configuration files.
The statement that is inserted by this utility presumes that the Exim
4 configuration comes from Debian's "exim4-config" package.
Specifically, it makes use of the +relay_from_hosts host list,
the +local_domains and +relay_to_domains domain lists, and
the acl_local_deny_exceptions ACL. A more generalized approach
is on my, ahem, to-do list.
This python script and manual page is written by Tor Slettnes,
originally for Debian GNU/Linux.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
On a Debian GNU/Linux system, the full text of the GPL is available in
/usr/share/common-licenses/GPL. It is also available at: