Open Source Inventory Management System
Go to file
Matthias Mair 45daef8442
feat: more mail sending backends and plugability (#9608)
* [FR] Improve Email handeling
Fixes #7950

* extend implementation of email thread and message models

* add missing args

* add unit test

* increase test coverage

* make key not necessary

* do not consider in coverage

* add email apis

* Add email admin

* fix email configuration check

* improve rendering

* squash migrations

* add config value overview

* log if mails were send

* add additional headers

* fix api unit test

* fix url resolving

* add InvenTree specific task to issue mails
required to extend sending options (prio, reply to)

* use internal sending task to keep telemetry cleaner

* add prio handling

* add plugin handling

* add setting

* factor plugin method out

* add typing

* move function

* bump version

* fix import path

* add a test for the test endpoint

* fix checking logic

* Add anymail sending / tracking handling

* add more ordering fields to api

* remove unneeded assingment

* add basic docs

* handle incoming emails with anymail

* Add inbox handling
Closes https://github.com/inventree/InvenTree/issues/7951

* add list of supported ESPs

* add better error transparency when sending fails

* add missing migration

* combine migrations back down

* fix todos

* fix qc export

* fix missing model props

* add tests

* ensure things are passed as a list

* fix list formatting

* fix deps

* move tests

* add testing with anymail

* allow handling of priority and headers

* add test for events

* add test for inbound messages

* rename variable

* increase coverage

* fix format

* add setting doc

* fix link

* rename fnc

* disable pro test

* make messages clearer

* fix doc syntax

* fix assign

* fix test

* revert test disablement

* add enum

* disable check for now

* try changing test around

* add incoming mail processing

* fix import

* add docs

* Fix mail.md

* bump deps

* fix api version
2025-06-20 11:49:02 +10:00
.devcontainer Add devcontainer flag (#9758) 2025-06-12 08:40:50 +10:00
.devops Update azure testing settings (#8955) 2025-02-10 12:20:24 +11:00
.github feat: improve user/group management actions (#9602) 2025-06-19 09:14:59 +10:00
.vscode feat(backend): add oauth2 (#9333) 2025-04-18 19:27:32 +10:00
assets/images/logo Code structure refactor (#5582) 2024-04-03 12:16:59 +11:00
contrib feat(backend): improve worker tracing (#9808) 2025-06-20 09:47:28 +10:00
docs feat: more mail sending backends and plugability (#9608) 2025-06-20 11:49:02 +10:00
src feat: more mail sending backends and plugability (#9608) 2025-06-20 11:49:02 +10:00
.git-blame-ignore-revs Cleanups for refactor (#6933) 2024-04-03 19:59:02 +11:00
.gitattributes fix endline 2022-05-20 13:35:07 +02:00
.gitignore refactor(docs): simplify docs files / pipelines (#9633) 2025-05-06 12:20:11 +01:00
.pkgr.yml Make libffi version more flexible (#7734) 2024-07-25 21:55:49 +10:00
.pre-commit-config.yaml feat(docs): add architecture/roadmap (#9624) 2025-06-13 11:28:02 +10:00
.python-version Fix dependabot version detection (#9080) 2025-02-15 07:45:49 +11:00
CODE_OF_CONDUCT.md Add Coc (#9568) 2025-04-26 10:06:46 +10:00
CONTRIBUTING.md Bump pre commit versions (#7255) 2024-06-25 20:52:34 +10:00
LICENSE Update LICENSE (#8089) 2024-09-08 09:52:00 +10:00
Procfile Fix typo in Procfile (#7043) 2024-04-16 08:53:03 +10:00
README.md refactor(docs): better security linking and references for docs (#9621) 2025-05-04 22:20:09 +01:00
SECURITY.md refactor(docs): better security linking and references for docs (#9621) 2025-05-04 22:20:09 +01:00
biome.json [PUI] Switch linting to biome (#8317) 2024-11-12 11:03:08 +11:00
codecov.yml add more granular flags (#9645) 2025-05-17 21:17:29 +02:00
crowdin.yml Update crowdin.yml (#7985) 2024-08-25 13:17:24 +10:00
pyproject.toml chore: bump react to current major versions (#8913) 2025-05-10 22:38:41 +01:00
readthedocs.yml refactor(docs): simplify docs files / pipelines (#9633) 2025-05-06 12:20:11 +01:00
requirements.txt Admin shell (#6998) 2024-04-11 21:12:41 +10:00
runtime.txt Fix dependabot version detection (#9080) 2025-02-15 07:45:49 +11:00
tasks.py feat: add cluster monitor task (#9812) 2025-06-20 09:45:25 +10:00

README.md

InvenTree logo

InvenTree

Open Source Inventory Management System

License: MITGitHub tag (latest SemVer)
CI
Documentation Status
Docker Build
Netlify Status
Performance Testing

OpenSSF Best Practices
OpenSSF Scorecard
Maintainability Rating

codecov
Crowdin
GitHub commit activity
Docker Pulls

GitHub Org's stars
Twitter Follow
Subreddit subscribers
Mastdon

View Demo · Documentation · Report Bug · Request Feature

🌟 About the Project

InvenTree is an open-source Inventory Management System which provides powerful low-level stock control and part tracking. The core of the InvenTree system is a Python/Django database backend which provides an admin interface (web-based) and a REST API for interaction with external interfaces and applications. A powerful plugin system provides support for custom applications and extensions.

Check out our website for more details.

🧭 Roadmap

Want to see what we are working on? Check out the roadmap tag and horizon milestone.

🛠️ Integration

InvenTree is designed to be extensible, and provides multiple options for integration with external applications or addition of custom plugins:

👾 Tech Stack

Server
Database
Client
DevOps

🧰 Deployment / Getting Started

There are several options to deploy InvenTree.

Single line install - read the docs for supported distros and details about the function:

wget -qO install.sh https://get.inventree.org && bash install.sh

Refer to the getting started guide for a full set of installation and setup instructions.

📱 Mobile App

InvenTree is supported by a companion mobile app which allows users access to stock control information and functionality.

🔒 Code of Conduct & Security Policy

The InvenTree project team is committed to providing a safe and welcoming environment for all users. Please read our Code of Conduct for more information.

InvenTree is following industry best practices for security. Our security policy is included in this repo. We provide dedicated security pages on our documentation site.

👋 Contributing

Contributions are welcomed and encouraged. Please help to make this project even better! Refer to the contribution page.

📜 Translation

Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.

💸 Sponsor

If you use InvenTree and find it to be useful, please consider sponsoring the project.

💎 Acknowledgements

We want to acknowledge PartKeepr as a valuable predecessor and inspiration.
Find a full list of used third-party libraries in the license information dialog of your instance.

❤️ Support

This project is supported by the following sponsors:

Martin Löper Oliver Lippert Seth Smith SpaceQuest Ltd Appwrite Cabot Technologies Markus Kasten Jess Haynes

With ongoing resources provided by:

Built with Depot Servers by Digital Ocean Deploys by Netlify Translation by Crowdin

⚠️ License

Distributed under the MIT License. See LICENSE.txt for more information.