https://github.com/linagora/tmail-backend
https://github.com/linagora/tmail-backend
java jmap mail mailserver mda
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/linagora/tmail-backend
- Owner: linagora
- License: agpl-3.0
- Created: 2020-12-31T04:30:29.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-03-23T21:31:48.000Z (about 2 months ago)
- Last Synced: 2025-03-24T00:11:30.440Z (about 2 months ago)
- Topics: java, jmap, mail, mailserver, mda
- Language: Scala
- Homepage:
- Size: 88.1 MB
- Stars: 51
- Watchers: 12
- Forks: 26
- Open Issues: 74
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: security.md
Awesome Lists containing this project
README
# Twake Mail Server
[](
https://github.com/linagora/tmail-backend/graphs/contributors
)
[](https://github.com/linagora/tmail-backend/issues)
[](docs)
[](https://play.google.com/store/apps/dev?id=8845244706987756601)
[](https://apps.apple.com/gr/developer/linagora/id1110867042)
[](https://hub.docker.com/r/linagora/tmail-backend)
[](https://gitter.im/linagora/team-mail?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Website
•
Report Bug
•
Roadmap
---
This project adapts and enhances [Apache James project](https://james.apache.org) with the goal to provide a complete, enterprise-ready collaborative email solution adapted to the rest of
the [Linagora](https://linagora.com) eco-system.Twake Mail relies on [TwakeMail Flutter](https://github.com/linagora/tmail-flutter) as a frontend.
Twake Mail is developed with love by [Linagora](https://linagora.com).
## Useful links
- We maintain a [CHANGELOG](CHANGELOG.md) and [upgrade instructions](upgrade-instructions.md)
- [Building + Running the memory server](tmail-backend/apps/memory/README.md)
- [Building + Running the distributed server](tmail-backend/apps/distributed/README.md)
- [Project documentation](docs)
### Additional features
Apache James extensions includes:
- Email filtering
- Encrypted mailboxes
- Team mailboxes
- Rate limiting
- Contacts autocomplete
- Email forwarding
- Push subscription with Firebase Cloud Messaging
- Restore deleted emails
- Labels
- Settings[More detail...](docs/modules/ROOT/pages/tmail-backend/features/index.adoc)
## Building the project
Read more...
### Manual buildingThis projects uses git submodules to track the latest branch of [the Apache James project](https://james.apache.org)
After cloning this repository, you need to init the `james-project` submodule:
```
git submodule init
git submodule update
```It is possible that the `james-project` submodule is not in its latest state as well. If you want the latest changes
of the Apache James project, you can run as well:```
git submodule update --remote
```**Note**: Don't hesitate to push the latest state of the submodule in a commit if it was not up-to-date!
Then you can compile both `apache/james-project` and `linagora/tmail-backend` together.
```
mvn clean install -Dmaven.javadoc.skip=true
```You can add the `-DskipTests` flag as well if you don't want to run the tests of the `apache/james-project`.
### Building with a local jenkins runner
You can use a custom local jenkins runner with the `Jenkinsfile` at the root of this project to build the project.
This will automatically do for you:* checkout and compile latest code of Apache James project alongside `tmail-backend`
* generate docker images for `memory` and `distributed` flavors of the project
* launch unit, integration and deployment tests on `tmail-backend`To launch it you need to have docker installed. From the root of this project, you can build the
Jenkins runner locally yourself:```
docker build -t local-jenkins-runner dockerfiles/jenkins-runner
```And then you need to launch it with the Jenkinsfile:
```
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd)/dockerfiles/jenkins-runner/Jenkinsfile:/workspace/Jenkinsfile local-jenkins-runner
```If you don't want the build to redownload everytime all the maven dependencies (it can be heavy) you can mount
your local maven repository as a volume by adding `-v $HOME/.m2:/root/.m2` to the above command.## FAQ
### **What would your roadmap look like?**
Read more...
By the end of 2023 we expect to add the following extensions:- Provide Archiving and automated actions
- Provide a JMAP extension for thumbnails
- Download all attachments at once### **Your work is awesome! I would like to help you. What can I do?**
Read more...
Thanks for the enthousiasm!There are many ways to help us, and amongst them:
- **Spread the word**: Tell people you like **Team Mail**, on social medias, via blog posts etc...
- **Give us feedbacks**... It's hard to make all good decisions from the first time. It is very likely we can benefit from *your* experience. Did you encountered annoying bugs? Do you think we are missing some features critical to you? Tell us in the [issues](https://github.com/linagora/tmail-backend/issues).
- I can code! **I wanna help ;-)**. Wow thanks! Let's discuss your project together in the [issues](https://github.com/linagora/tmail-backend/issues) to get you on track!