Skip to content

MarkGhebrial/mailroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mailroom

An email server written in pure Rust.

This is very much a work in progress and is nowhere near completion.

What works (not necessarily stable or complete!):

  • My implementation of the POP3 protocol
    • Can fool email clients into showing a message in the user's inbox.
      • Tested with Mozilla Thunderbird.
    • Doesn't currently work with TLS or STARTTLS.
    • Very minimal; missing a lot of features
  • The configuration file
    • Parsed with serde, then stored in a global static variable
  • Logging with Log4rs

What I'm working on:

  • A database to store user information and emails
    • Switching to SQLite from Postgres for ease of use.
    • Using sea-orm as the ORM.

What's missing / To do (in order of priority):

  • TLS support
    • Automatically get certificates from Let's Encrypt?
  • SMTP support
  • IMAP support

Things to look into

Setup

(optional) Set an environment variable called CONFIG_PATH to the path of config.toml.

Migration

Run DATABASE_URL=sqlite://sqlite.db sea-orm-cli migrate refresh

Generate models

sea-orm-cli generate entity -u sqlite://sqlite.db -o src/database/models

License

Mailroom - A mail server written in Rust

Copyright (C) 2023-2024 Mark Ghebrial

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

About

An email server, written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages