A complete, self-contained local email system featuring hybrid encryption (RSA + AES), custom SMTP and POP3 server implementations, and a Tkinter-based GUI client.
- Hybrid Encryption: Uses RSA for secure key exchange and AES-256 GCM for fast, authenticated message encryption.
- Custom SMTP Server: A local SMTP server that handles incoming mail and stores them in encrypted mailboxes.
- Custom POP3 Server: A local POP3 server for authenticated retrieval of emails.
- Integrated GUI Client: A user-friendly interface to manage keys, login, compose encrypted emails, and read messages.
- Local Storage: All emails and user data are stored locally in the
data/directory.
- Language: Python 3.x
- GUI Framework: Tkinter
- Cryptography:
cryptographylibrary (Python) - Protocols: Custom SMTP (Port 2525) and POP3 (Port 2110)
email_client.py: The main GUI application and encryption logic.smtp_server_simple.py: Custom SMTP server implementation.pop3_server.py: Custom POP3 server implementation.run.sh/run.bat: Quick-start scripts for Linux and Windows.requirements.txt: Project dependencies.
-
Clone the repository:
git clone https://github.com/SheriPrime/minimalEmailClient.git cd "infoSec Project AG"
-
Create a virtual environment (optional but recommended):
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
The improved run.sh script now handles environment setup, virtual environment creation, and dependency installation automatically.
On Linux/macOS:
chmod +x run.sh
./run.shOn Windows: You can still use the manual setup steps:
python -m venv venvvenv\Scripts\activatepip install -r requirements.txtpython email_client.py
- User Registration: Generates a 2048-bit RSA key pair. The private key is stored locally for decryption.
- Encryption:
- A random AES key is generated for each email body.
- The recipient's public key is used to encrypt the AES key (RSA).
- The email content is encrypted using the AES key (GCM mode).
- Decryption: The recipient uses their private key to recover the AES key, then decrypts the email content.
Note: This project is intended for educational purposes in Information Security.