hardware / mailserver

:warning: UNMAINTAINED - Simple and full-featured mail server using Docker
https://store.docker.com/community/images/hardware/mailserver
MIT License
1.29k stars 324 forks source link

This is not an issue, but a THANK YOU! #144

Closed ksylvan closed 7 years ago

ksylvan commented 7 years ago

Hi Folks,

I was recently trying to set up a mailer and web stack for a friend. I had done this before, many times, from scratch, painstakingly installing and configuring the MTA of the day (started in the old times with UCB Sendmail, a brief stint with smail, then on to exim, qmail, and recently, postfix). Installing the web software of the day, etc.

So I was just digging into all the steps it takes to set up postfix correctly, generate 4096-byte SSL certs for everything, generate DKIM signature pairs and have correct DMARC and SPF setups, etc. And set it all up to seamlessly create a high reliability and high trust setup.

That's when I ran into your software! Hallelujah!

Your setup literally saved me days of tinkering.

I added my own Ansible deployment scripts on top of your setup (you can find those on my github) and off I went. I ran your v1.0 stable branch for a while, and was able to seamlessly upgrade to your latest v1.1 setup.

So I am writing this to let you know that I truly appreciate your work and am very impressed by the amazing turn-key system you've created.

I replaced my own domain email server setup that has been on the web since the late 80's. That email system was so full of spam that it was almost unusable. After upgrading, almost all the spam is being filtered (correctly) with the occasional Sieve scripts taking care of the few stragglers. I love the RainLoop and RSpamd apps and the many integrated systems that make up a beautiful coherent whole.

Thank you for this!

1n5aN1aC commented 7 years ago

I just want to add my thank you as well, and let you know I am patiently waiting in anticipation for all the improvements in 1.1!

hardware commented 7 years ago

Thanks for the kind words, I try to maintain this image during my free time and keep it simple and reliable as possible. I enjoy doing this because I like Docker and e-mail setups.

Btw, your Ansible setup is really great, i will add it in the readme. https://github.com/ksylvan/docker-mail-server

I replaced my own domain email server setup that has been on the web since the late 80's.

Impressive :p

ksylvan commented 7 years ago

Btw, your Ansible setup is really great, I will add it in the readme. https://github.com/ksylvan/docker-mail-server

Thanks. I'll maintain it alongside your code here. It makes it super simple to deploy a new server. When you release 1.1 as 1.1-stable, I'm planning on having my v1.1 branch be master so anyone who uses the ansible setup gets the latest setup.

I replaced my own domain email server setup that has been on the web since the late 80's.

Impressive :p

What's really impressive is how much spam I was getting on my old server and how little I am getting now. ;-)

denji commented 7 years ago

@ksylvan

Rspamd can be suitable for systems of various sizes, as large mail systems, and small processing a few emails per hour. The first will find rspamd features such as easy horizontal scaling, master-slave synchronization statistics, built-in commands for monitoring performance, high speed and the ability to withstand sudden bursts of load (by turning off complex inspections), as well as a flexible and extensible architecture.

History: On rspamd was strongly influenced by projects such as nginx, crm114, and of course spamassassin. From nginx rspamd took the model of the processing of the data and principles of processing of various information — to maximize the use of optimal algorithms such as finite automata, suffix trees, etc. In crm114, in my opinion, implemented the greatest number of different statistical algorithms and approaches, which are then slowly introduced to other systems. For example, rspamd statistical analysis of the message uses the algorithm of analysis of bigrams of words, not unigram like SA and many other spam filters. This allows to estimate the probability (or frequency) is not just words, but a spectrum of combinations of words. On the one hand it increases the size of the statistics, and on the other increases its accuracy. But, of course, most of rspamd took from SpamAssassin'and used as the prototype and reference point for the creation of the project. The ideology of the rating of the message based on many factors — regular expressions, DNS block-lists, lists, statistics, signatures, phishing, and other things taken from SpamAssassin'. In addition, the evaluation was extended to the concept of "metrics" that can allow to evaluate the message by different sets of rules.

hardware commented 7 years ago

Rspamd have great features and writing custom rules and symbols is really powerfull with lua.

sknight80 commented 7 years ago

I would like to also thank you for your hard work! I am using your image in pre-production environment. Looks really good. I had to change the hard coded listening port in the nginx configuration of rainloop image. I am planning to make it configurable and send a PR request if you need it. I am also planning to add the policyd configuration option into the main email server. If you need this kind of modification, please let me know and I am happy to send a PR once I setup and added into your suite. I have a question about the 1.1 branch. Is it stable? Should I upgrade my pre-production env with the 1.1 solutions? I ask this because of the 1.0 version accept lots of spam emails and I need to teach the system what is spam what is not (daily 20+ emails only).

Thank you!

hardware commented 7 years ago

I am planning to make it configurable and send a PR request if you need it.

If you need this kind of modification, please let me know and I am happy to send a PR once I setup and added into your suite.

All contributions are welcome of course :)

I have a question about the 1.1 branch. Is it stable? Should I upgrade my pre-production env with the 1.1 solutions ?

For a pre-production env, I would say yes. For a production environment, It might be necessary to wait a little longer (2/3 weeks). I have to tweak few minor things.

ksylvan commented 7 years ago

How would custom rules/plugins written in lua be incorporated?

hardware commented 7 years ago

@ksylvan

mailserver:
  volumes:
    - /path/to/rspamd.local.lua:/etc/rspamd/rspamd.local.lua:ro

Example of a custom symbol for an empty subject header :

-- /etc/rspamd/rspamd.local.lua

rspamd_config:register_symbol {
  type = 'prefilter',
  name = 'EMPTY_SUBJECT',
  callback = function(task)
    local subject = task:get_header('Subject')
    if subject == nil or subject == '' then
      return true
    end
    return false
  end,
  score = 15,
  description = 'Empty subject',
  flags = 'fine',
  priority = 1
}

I think it should work but I have not tested this solution with a docker volume.

https://rspamd.com/doc/tutorials/writing_rules.html https://rspamd.com/doc/lua/task.html

guillaumedc commented 7 years ago

I join all the people here to thank you! It's complete, well documented and you are very reactive on support :)

I previously setup a mail server on my own without Docker and it took me so long to be functional... Now, I definitely switch to your Docker setup because it's reliable and very convenient in term of migration (already done once by hand, and it was very painful :P ).

Thanks again!

AndrewSav commented 6 years ago

@hardware I just wanted to take a moment to say "Thank You" too, in particular for the 1.1 update that brought rspamd. Before that I was receiving about 20-50 spam emails daily. That with spamassasin and all that. Now I only get 1-2 every few days. This is great.

As usual, the secret sauce is some work and sane defaults. I'm sure it;s possible to configure SA manually, but it takes time and effort. So thank you for spending this time and making this effort.

Very nicely done.