Commit Graph
9 Commits
Author SHA1 Message Date
Jean-Baptiste PENRATHandGitHub 3c16aa3efa 🔧(docker) update celery-dev service build context and target (#90)
Currently the `celery-dev` service is not able to build as the context is wrong
so the Dockerfile cannot be found. Furthermore we also fix the target.
2025-05-13 10:00:42 +02:00
Sylvain ZimmerandGitHub 1f4047a061 (celery) add Celery worker, search, recipient statuses, better build (#88)
Before, sending was done synchronously on the api/send POST call. Now
we just build the MIME message and mark the message for sending, and
queue the actual SMTP (or internal) sending for the worker. We use
this opportunity to add fine-grained delivery statuses for each
recipient, something that traditional email systems are unable to do!

Expanding on that, this (too large) PR adds an initial Elasticsearch
index of threads. It also overhauls the build and CI system, using
Poetry instead of Pip.
2025-05-13 00:52:48 +02:00
Sylvain Zimmer 5bdc8ccf48 🐛(dkim) fix invalid DKIM signature and add verify test
There was an extra \r\n added, that broke validation. We now test
the source of the received message on the mailcatcher, and validate
that DKIM header. Should be much more robust even if it adds a new
dependency for tests.
2025-04-23 00:19:20 +02:00
Sylvain Zimmer d789bb48ca (e2e) make end-to-end emailing work!
You can now send emails to the inbound MTA, which will forward them
to the Django MDA. You can then read them (served through REST) from
the frontend and compose a reply! The frontend will POST the message
to Django, which will build an RFC5322 message and send it to the
outbound MTA, which will relay it to the local mailcatcher where you
can view your reply. Phew!

Initial documentation in the README but this is the core loop that
will be expanded upon, with diagrams and videos!
2025-04-22 18:47:35 +02:00
jbpenrath 1149bf73b7 🔧(make) add commands to generate openapi stuff
Add a command `api-update` to generate JSON OpenApi Schema then
update the frontend api client.
2025-04-22 11:59:10 +02:00
Sylvain Zimmer e522acdef0 👷(front) update frontend tooling, nginx config and app name
Simplified Docker setup for frontend, use frontend-dev for running
the app itself, and frontend-tools for all npm usage. The local
node_modules directory should be used, without any copy in the container
2025-04-17 00:25:53 +02:00
Sylvain ZimmerandGitHub 1070c1ab19 🚀(scalingo) add Scalingo deployment scripts (#12)
* 🚀(scalingo) add scalingo nginx config

* 👷(frontend) fix frontend build, no lint for now

* 👷(scalingo) fix frontend build location and backend buildpack compat

* 🐛(nginx) try another build location

* 🐛(scalingo) fix nginx startup

* 🐛(scalingo) fix scripts and buildpack run location

* 🐛(scalingo) fix buildpack cleanup

* 🐛(nginx) pass host headers to the backend

* 🚀(scalingo) support DATABASE_URL env var
2025-04-16 18:17:09 +02:00
Sylvain Zimmer 287169118b (mta) harmonize MTA and Django routes and tests
First emails can now be sent from port 25 of mta-in through Django.
2025-04-16 01:20:08 +02:00
Sylvain Zimmer 53db5a748d 🎉(all) bootstrap the Messages project
We used the Drive repository as starting point. There are still
some leftovers that will be cleaned up over time.
2025-04-13 18:48:04 +02:00