Twake Mail Server
![Join the chat at https://gitter.im/linagora/team-mail](https://badges.gitter.im/linagora/team-mail.svg)
Website
•
Report Bug
•
Roadmap
This project adapts and enhance Apache James project with a goal to provide a complete, enterpriseready collaborative email solution adapted to the rest of
the Linagora eco-system.
Team-mail relies on TeamMail Flutter as a frontend.
Team-mail is developed with love by Linagora.
Useful links
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...
Building the project
Read more...
### Manual building
This 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!