linagora / tmail-backend

GNU Affero General Public License v3.0
30 stars 17 forks source link
java jmap mail mailserver mda

Twake Mail Server

Contributors Issues Documentation Android application Ios application Images docker Join the chat at https://gitter.im/linagora/team-mail

Logo

WebsiteReport BugRoadmap


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:

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!