Repolode
Jinnrry

Jinnrry/PMail

A single-file, self-hosted private email server with SMTP, POP3 and IMAP support plus a web mail management interface for your own domain.

Open-source alternative to:Google WorkspaceMicrosoft Exchange

Stars
2,333
Forks
256
Open issues
23
Last commit
27 days ago

What is it?

PMail is a self-hosted email server aimed at a minimal deployment process and low resource use. It ships as a single binary that includes send and receive mail services along with a web interface for managing mailboxes, so you can run mail for your own domain without assembling several separate components.

The server supports DKIM and SPF signing and checks, and it can obtain and renew Let's Encrypt certificates through ACME. It supports multiple domains and multiple users, and it works with any standard mail client over POP3, SMTP and IMAP. Configuration is handled through a bootstrap page in the browser, and the data store can be SQLite or MySQL. Plugins run as separate processes and can add features such as spam blocking or push notifications.

The project is written in Go with a Vue 3 and Element Plus frontend. Running it requires a server, a domain name, and open mail ports (25, 110, 143-related IMAP 993, 465, 587, 995), and the README recommends checking your IP against blocklists before deploying.

Key features

  • 01Single-file deployment with a small binary and low memory use.
  • 02Supports DKIM and SPF checks for better email deliverability.
  • 03Automatically obtains and renews Let's Encrypt certificates via ACME.
  • 04Provides POP3, SMTP and IMAP access for any standard mail client.
  • 05Supports multiple domains and users, with SQLite or MySQL storage.
  • 06Extensible through plugins such as spam blocking and push notifications.

Use cases

  • Hosting email addresses on your own domain without a third-party provider.
  • Running a small team or family mail server on a personal VPS.
  • Testing mail flows and deliverability in a self-controlled environment.

Quick start

  1. 1

    Check your domain and server IP on Spamhaus for blocking records

  2. 2

    Download the program file or pull the Docker image

    docker pull ghcr.io/jinnrry/pmail:latest
  3. 3

    Run the server

    ./pmail -p 80
  4. 4

    Open the browser and follow the setup instructions

Things to know

  • Sending and receiving mail requires your own domain, a public server IP, and ports 25, 80, 110, 443, 465, 587, 993 and 995 open.
  • Your server IP and domain may be listed on blocklists, which the README says to check before deploying.
  • Licensed under GPL-2.0, which requires derivative works to be distributed under the same license.

Topics

FAQ

What is PMail?
A single-file, self-hosted private email server with SMTP, POP3 and IMAP support plus a web mail management interface for your own domain. PMail is a self-hosted email server aimed at a minimal deployment process and low resource use. It ships as a single binary that includes send and receive mail services along with a web interface for managing mailboxes, so you can run mail for your own domain without assembling several separate components.
Is PMail free to use? What license does it have?
PMail is open source under the GPL-2.0 license. Check the license terms before using it in commercial products.
Is PMail still maintained?
Actively maintained. The last commit to PMail was on Sep 24, 2026.
What can I use PMail for?
Hosting email addresses on your own domain without a third-party provider. Running a small team or family mail server on a personal VPS. Testing mail flows and deliverability in a self-controlled environment.
How do I install PMail?
Check your domain and server IP on Spamhaus for blocking records Download the program file or pull the Docker image: docker pull ghcr.io/jinnrry/pmail:latest Run the server: ./pmail -p 80 Open the browser and follow the setup instructions
Where can I get PMail?
The source code and installation instructions are on GitHub: https://github.com/Jinnrry/PMail

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects