Michael Mulek /

Mail Server

A self-hosted Mailcow instance for domain-based email and automated system notifications.

#mailcow #email #infrastructure #self-hosting

My mail server is powered by Mailcow, a complete mail system built on Docker that handles all mail-related services under my own domain — mulek.cc.
It’s configured for both practicality and experimentation, serving as a private, self-managed alternative to third-party mail providers.

Purpose

This setup allows me to:

  • Use my custom domain for personal and system mail
  • Receive automated update summaries from my servers
  • Maintain full control and visibility over mail delivery
  • Experiment with SPF, DKIM, and DMARC configurations for deliverability

Beyond functionality, it’s also a proof of concept — demonstrating how a reliable, domain-based mail service can run entirely within my homelab.

Sending Mail via SMTP2GO

Outgoing mail is relayed through SMTP2GO, using their free tier, which perfectly fits my current needs.
This setup ensures consistent delivery and reputation while keeping outbound messages lightweight — primarily for system alerts, update reports, and low-volume personal mail.

Mail delivery pipeline:
Postfix → SMTP2GO → Recipient Mailbox

This combination offloads outbound delivery to SMTP2GO’s infrastructure while maintaining complete control of the inbound mail flow through Mailcow.

Receiving Mail

Mailcow handles all incoming mail for @mulek.cc addresses directly.
DNS records (MX, SPF, DKIM, and DMARC) are configured to ensure reliable delivery and authentication. The setup supports multiple user mailboxes, including:

  • Personal accounts
  • System and admin notifications
  • Dedicated alert inboxes for server events

All mail is stored locally within my infrastructure, with automatic backups to my NAS.

Automated Update Summaries

Each server in my network runs scheduled updates via APT automation, and uses Postfix + SMTP2GO to send an update summary email to my Mailcow inbox.
This provides a centralized, at-a-glance view of all system maintenance across my homelab — no manual log checking required.

Example subjects include:
[Update Summary] office-pc-bazzite — 5 packages updated
[Update Summary] proxmox-node1 — system fully up to date

Reliability and Maintenance

Mailcow runs as a Docker stack with automated updates and backup routines. Regular checks include:

  • Monitoring queue health and message logs
  • Verifying DKIM signatures
  • Updating DNS and SSL certificates as needed

A personal mail system — built for reliability, transparency, and control under my own domain.