Skip to content
alphonsPublic

About

A self-hosted email server built with C# and .NET 10, providing SMTP, IMAP, and POP3 services with an integrated web management interface

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

MailSharp

A self-hosted email server built with C# and .NET 10, providing SMTP, IMAP, and POP3 services with an integrated web management interface.

Features

  • SMTP — ports 25, 587 (STARTTLS), and 465 (TLS); DKIM signing/verification; SPF and DMARC checking; relay support; configurable email flow policies per IP group
  • IMAP — ports 143 (STARTTLS) and 993 (TLS); IDLE, ACL, QUOTA, SORT extensions; public folder support
  • POP3 — ports 110 and 995 (TLS)
  • Web Manager — ASP.NET Core Razor Pages dashboard for server status, domain management, and configuration; role-based access (User / Administrator)
  • DNS — built-in async DNS resolver with configurable upstream servers
  • IP Groups — per-CIDR access control with per-protocol and per-email-flow policies, expiry support
  • Anti-spam / Anti-virus — pluggable per IP group

Project Structure

Project Description
MailSharp.Common Shared interfaces, models, and service extensions
MailSharp.DNS Async DNS resolver
MailSharp.SMTP SMTP server
MailSharp.IMAP IMAP server
MailSharp.POP3 POP3 server
MailSharp.WebManager ASP.NET Core web application and host process
MailSharp.TestFormApp WinForms test client

Getting Started

Prerequisites

  • .NET 10 SDK
  • A valid TLS certificate (.pfx) for your mail domain

Build and run

git clone https://github.com/alphons/MailSharp.git
cd MailSharp
dotnet run --project MailSharp.WebManager

The web interface is available at https://localhost:5001.

Default admin credentials: admin / admin — change these before exposing the server externally.

Install as a Windows Service

Run _install.cmd as Administrator from the published output directory. The script creates and starts a MailSharp Windows Service configured for delayed auto-start with automatic restart on failure.

To remove the service, run _uninstall.cmd as Administrator.

Configuration

All server settings are stored in mailsharp.json alongside the executable. The web manager provides a UI for most settings; appsettings.json controls logging and ASP.NET host options only.

Key sections in mailsharp.json

IpGroups — define CIDR ranges with per-protocol access and email flow policies:

{
  "Name": "Remote",
  "Priority": 3,
  "Cidr": "0.0.0.0/0",
  "Access": { "Smtp": true, "Pop3": false, "Imap": true, "RequireSslTlsForAuth": true },
  "EmailFlows": {
    "ExternalToLocal": { "Allowed": true, "RequireAuth": false },
    "LocalToExternal": { "Allowed": false, "RequireAuth": true }
  }
}

SmtpSettings — ports, TLS certificate, local domains, relay, DKIM, storage paths, connection limits.

Pop3Settings / ImapSettings — ports, TLS certificate, connection limits, IMAP extensions.

MailboxSettings — path where mailboxes are stored on disk.

MaintenanceUsers — web manager accounts with roles and optional expiry.

License

MIT

Contributing

Fork the repository, create a feature branch, and open a pull request.

About

A self-hosted email server built with C# and .NET 10, providing SMTP, IMAP, and POP3 services with an integrated web management interface

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages