Introduction
I installed the debian packages, so I didn’t need to compile anything. The basic configuration was done via the debian installer.
I found these links helpful in further configuring exim:
Setting up virtual domains
To add a new virtual domain, create file in /etc/exim4/virtual and add domain to /etc/exim4/update-exim4.conf.conf
I also wanted to drop connections after too many unknown users, so I added this to /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt
# Deny if more than 5 unknown users
deny
condition = ${if >{$rcpt_fail_count}{5}{yes}{no}}
message = Too many unknown users
Stats
Stats are generating by running
eximstats -byemail -pattern "Rejected by SA" "/SAEximRejCond expand returned: '1'/"
from the log rotation cron job.
DNS Blacklists
I enabled the flagging of messages by adding the following to /etc/exim4/conf.d/main/02_exim4-config_options:
CHECK_RCPT_IP_DNSBLS = sbl-xbl.spamhaus.org:dnsbl.sorbs.net:combined.njabl.org:bl.spamcop.net:psbl.surriel.com
Command line arguments
To list all messages in the queue:
sudo /usr/sbin/exim4 -bp
To view a specific message header:
sudo /usr/sbin/exim4 -Mvh
To remove a message from the queue:
sudo /usr/sbin/exim4 -Mrm
To remove all frozen messages from the queue:
sudo /usr/sbin/exiqgrep -iz | xargs sudo /usr/sbin/exim4 -Mrm
To force a delivery attempt:
sudo /usr/sbin/exim4 -qf
ClamAV
I ended up having to install clamav from the volatile packages from /http://www.debian.org/volatile/ in order to keep it updated.
Antivirus test files: http://www.eicar.org/anti_virus_test_file.htm
Greylistd
This was silly easy to setup using these instructions
It boiled down to the following commands:
apt-get install greylistd
greylistd-setup-exim4 add
I did edit /etc/greylistd/config to change the length of time before a retry will be accepted to 30min (default is 60).
Spoofing work email
I wanted to be able to send email as $workaddress, and have it be accepted. To do this I had to add my user account to the MAIN_TRUSTED_USERS in 02_exim4-config_options