Citadel Email Server

Recently, I needed to redo my email server. The mail reasons for this were that I was finding it hard to control spam, and I could not send email. As I was looking around for a guide, or for examples I found the Citadel software. Citadel is a one stop solution, so rather than installing multiple pieces of software for different aspects of a mail server I install, and secure one. Citadel has a long heritage coming out of the BBs scene of the 1980s and 1990s.

I started with the instructions located at the citadel website.

First I used yum to update the system, and install the dependancies.

Then I ran the install script:

1
curl http://easyinstall.citadel.org/install | sh

The install scripts asked me questions regarding the settings for the server, which I answered.

After I installed Citadel, I logged into the web panel and began customizing it.

Once I was comfortable with the Web Interface, and saw that I could send and receive email I installed Let’s Encrypt, and generated an SSL Certificate for my domains. I decided to be a little creative. Citadel has a specific place that it looks for its SSL in, so I linked the place where I generated my SSLs at to that location, and then I linked the certificate file, and key file to the names Citadel uses. This way I can renew the certificate without having to copy files around again.

The next step I took was to install SpamAssassin.

yum install spamassassin

I went to the Citadel website admin and told it to use the 127.0.0.1 host as the Spamassassin host.

I set up Spamassassin to add headers for spam.

Currently, I have filters which move emails with a SpamAssassin score of 2 to 5.9 to a spam folder, and then I delete emails with a spam score of 6 or greater.

Conclusion

The web interface is stable, I can sync most information from my server to my phone and other devices. Citadel can handle multiple domains, which I needed, and secure connetions to the server via imap and pop. It has a great legacy, and solid base. I definately reccommend people try this out.

Written on December 18, 2016