NAME

Mail::SpamAssassin::Spamd::Apache2::Config -- configure Apache with SpamAssassin

SYNOPSIS

LoadModule     perl_module     modules/mod_perl.so
PerlLoadModule Mail::SpamAssassin::Spamd::Apache2::Config
SAEnabled      On      # default off

SAAllow from   127.0.0.1 192.168.0.0/24 ::1
SAIdent        Off
SATell         Off
SATimeout      300     # reasonable: around 30s
SADebug        info
SAMsgSizeLimit 512000

DESCRIPTION

Provides Apache config directives for configuring spamd. Initializes the Mail::SpamAssassin object.

Note, that the defaults here apply to *this* code; apache-spamd.pl(1) sets different ones to be compatible with spamd(1).

DIRECTIVES

SAEnabled { On | Off }

Enables / disables SA for given vhost. Adds two handlers:

SetHandler modperl
PerlProcessConnectionHandler Mail::SpamAssassin::Spamd::Apache2
PerlPreConnectionHandler     Mail::SpamAssassin::Spamd::Apache2::AclIP

Defaults to Off.

SAAllow from 127.0.0.1 192.168/16 ::1 ...

Similar to Allow from ... directive from mod_authz_vhost. Spamd's --allowed-ips arguments should go here.

Default is empty, meaning access is denied.

SAIdent { On | Off }

Enables RFC 1413 (ident) checks incoming connections. Note, that checking if a *remote* login matches a *local* one is usually pointless. See Mail::SpamAssassin::Apache2::AclRFC1413(3) for more details.

Adds a handler:

PerlPreConnectionHandler     Mail::SpamAssassin::Spamd::Apache2::AclRFC1413

Requires IdentityCheck on in current configuration scope. This directive is provided by the mod_ident module, separated from core in Apache 2.1.

Default off.

SATell { On | Off }

Allow clients to issue the TELL command. Default off.

SATimeout 300

Timeout for SpamAssassin checks. 25 seconds is a reasonable value.

Default 0 (unlimited).

SADebug debug_level

Debug level for SpamAssassin.

SAMsgSizeLimit 512000

Maximum message size which will be processed. You're strongly encouraged to set this value. Unit: bytes.

SANew key "value"

Additional arguments to Mail::SpamAssassin->new(). Refer to Mail::SpamAssassin(3).

SAUsers { none | local | sql | ldap }

Databases which should be checked for user information. Will be checked in the order specified.

Default none.

SALocale xx_XX

Value of the LANG environment variable SpamAssassin should run with.

Default none, unless you set Apache otherwise somehow.

SAConfigLine "config line"

Equivalent of the --cf option for spamassassin / spamd / sa-learn.

EXAMPLES

You'll need some basic Apache directives in each configuration; that should be obvious.

PidFile "/var/run/apache-spamd.pid"
ServerName localhost
TimeOut 30

StartServers 1
MinSpareServers 1
MaxSpareServers 2
MaxClients 5
MaxRequestsPerChild 200

If the Mail::SpamAssassin::* perl modules are installed somewhere outside of @INC, you can use something like:

PerlSwitches -I/home/users/someuser/lib

simple

Listen 127.0.0.1:30783
LoadModule perl_module /usr/lib/apache/mod_perl.so
PerlLoadModule Mail::SpamAssassin::Spamd::Apache2::Config
SAenabled on
SAAllow from 127.0.0.1
SAtimeout 25
SAdebug info
SANew DEF_RULES_DIR "/usr/share/spamassassin"
SANew LOCAL_RULES_DIR "/etc/mail/spamassassin"
SANew LOCAL_STATE_DIR "/var/lib"
SAUsers local sql

vhosts with different config

Listen 127.0.0.1:30783
Listen 30784
LoadModule perl_module /usr/lib/apache/mod_perl.so
PerlLoadModule Mail::SpamAssassin::Spamd::Apache2::Config
SAenabled off
SAtimeout 25
SAdebug info
SANew DEF_RULES_DIR "/usr/share/spamassassin"
SANew LOCAL_RULES_DIR "/etc/mail/spamassassin"
SANew LOCAL_STATE_DIR "/var/lib"

LoadModule ident_module /usr/lib/apache/mod_ident.so

# local, ident-authenticated users only; search in /etc/passwd,
# if that fails, try SQL
<VirtualHost _default_:30783>
  IdentityCheck on
  IdentityCheckTimeout 4
  SAenabled on
  SAident on
  SAAllow from 127.0.0.1
  SAUsers local sql
</VirtualHost>

# serve for whole LAN, but don't read user configuration
<VirtualHost _default_:30784>
  SAenabled on
  SAtimeout 30
  SAAllow from 127.0.0.1 192.168.0.0/24
  SAUsers none
</VirtualHost>

BUGS

See <http://bugzilla.spamassassin.org/>.

SEE ALSO

httpd(8), spamd(1), apache-spamd(1), Mail::SpamAssassin::Spamd::Apache2(3), Mail::SpamAssassin::Spamd::Apache2::AclIP(3), Mail::SpamAssassin::Spamd::Apache2::AclRFC1413(3)