Skip to content
md ~/projects/email-client
Project archive

2026

Email Client

  • Java
  • JavaFX
  • Jakarta Mail
  • IMAP
  • SMTP
  • AtlantaFX
  • JUnit
  • GreenMail
  • jpackage

Overview

A desktop email client built with Java and JavaFX. It reads mail over IMAP and sends it over SMTP with Jakarta Mail; replying, forwarding, deleting and marking as read happen on the server, so everything stays in sync with the Gmail web and mobile apps. HTML emails are shown as plain text for safety, the password is encrypted with Windows DPAPI, and connections use TLS with certificate checks. It has a modern AtlantaFX interface, tests against an in-memory GreenMail server and a Windows installer that bundles Java.

01 · Problem

Email clients are security-sensitive: storing the password, connecting to the server safely and displaying HTML from untrusted senders can easily leave holes. Network calls take seconds, so keeping the interface responsive is another challenge.

02 · Solution

I built a client that talks IMAP and SMTP directly through Jakarta Mail and stays in sync with the server. The password is encrypted with Windows DPAPI, certificate checks and STARTTLS are enforced, and HTML is converted to plain text instead of being rendered. All network work runs on a single background thread, and the interface uses the AtlantaFX theme.

03 · Outcome

The result works with a real Gmail account, and reading, replying, forwarding and deleting are reflected in Gmail immediately. 34 unit/integration tests and 35 UI scenarios are verified against an in-memory GreenMail server, and it ships as a 35 MB Windows installer that bundles Java.