27
submitted 5 days ago* (last edited 5 days ago) by [email protected] to c/[email protected]

Hi,

I would like to host my own email server.

I know the pros and cons of doing so, please do not post about the advantage or disadvantage, there is others open topics for it.

I would like my setup fit those "requirements"

  • FLOSS
  • Be able to create complex rules for incoming/outgoing email ( with 🐍 Python language preferably ).
    • based on any properties (subject, ip, header, size, attachment, signed, encrypted, etc.. )
    • able to modify, delete, fw, etc... the email
  • Manage the limit of sending by size and number of outgoing over time (min, hours, week, etc..)

 

If you know a matrix comparison between email servers I'm all ears.

If you have any feedback with a solution this is most welcome too.

I plan to update this post to create a matrix/spreadsheet of all the solutions that I'll gather.

Thanks.

all 14 comments
sorted by: hot top new old
[-] [email protected] 15 points 5 days ago* (last edited 5 days ago)

See my personal notes. I do selfhost mail server, but on a vps to have a good IP

Being doing so for 20+ years and recently rebuilt the entire stack.

See https://wiki.gardiol.org/doku.php?id=email%3Astart

In short, I use postfix+dovecot, with opendmark and opendkim. Setup proper DNS email specific records and a few more steps.

Overall it runs fast and perfect on 4gb ram very old dual core atom CPU.

[-] [email protected] 3 points 4 days ago

Too lazy to read wiki link, but I too postfix/dovecot

[-] [email protected] 9 points 5 days ago

I have heard people have successfully utilised Mailcow without any issues for many years.

Personally gave it a try once but setting up ports, firewalls, virus scans, anti spams, dns felt too much effort for what I was going to use it for

[-] [email protected] 2 points 4 days ago

Using Mailcow for years now, love it, but I don't think it checks the custom scripts box of OP. Since it's all containers, you'd have to do some custom bind mounts to hook the underlying containers and keep the scripts, which might have some unintentional consequences depending on the upgrade.

[-] [email protected] 1 points 4 days ago

I second Mailcow. I use it on a residential IP and have a smarthost for relaying in/out since my isp blocks port 25.

For relay, I use mxroute.com, I have a lifetime account and Mailcow has a fetchmail option.

[-] [email protected] 7 points 5 days ago

Postfix and write a milter (mail filter), you can get them to interact a various points in the mail delivery.

I think most things can be accomplished within postfix

[-] [email protected] 6 points 5 days ago

Use Stalwart as mailserver. Besides coming with sane defaults, it allows to put hooks into almost every mail stage. Those hooks can be sieve scripts, local binaries or http calls.

[-] [email protected] 1 points 4 days ago

From its web page it sounds like it is both a MTA and MDA, has a built-in spam filter, plus has calendar, contacts and file storage. Do you know how it compares to my current setup of Postfix, Dovecot, and rspamd (and Nextcloud for the others)?

[-] [email protected] 1 points 4 days ago

Well exactly as you say: it's a single service instead of having to combine multiple. In my case dovecot was a lot faster for my mailboxes, but postfix was a piece of shit and I was happy to get rid of it and the many components (rspamd, dkimproxy, etc.) it required. It has far too many footguns, and I shot myself multiple times with them over the years. So the most important part (SMTP) is significantly simpler and IMO better with stalwart. And the mailbox part hopefully evolves as well (it already has JMAP, so that is already an advantage over dovecot as well).

[-] [email protected] 2 points 4 days ago

Ran the stack manually for decades, but spam makes it harder.

Run mailinabox now, it takes care of everything pretty well.

[-] [email protected] 2 points 5 days ago

All your requirements are a given, except for wanting to do things in Python.

[-] [email protected] 1 points 4 days ago

I definitely don't suggest self hosting email unless you don't care about losing messages occasionally

[-] [email protected] 1 points 4 days ago

Modoboa is made with Django iirc, so that might be a good starting point

this post was submitted on 25 May 2025
27 points (86.5% liked)

Selfhosted

46672 readers
2688 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS