Mailbox is the core component of Carbonio.
This repository contains the source code of Carbonio Mailbox which consists of several subcomponents and their roles:
- client: client package to interact with the mailbox
- common: package providing classes of common use, like utilities, clients and common parameters
- native: package to load native libraries
- soap: package describing SOAP APIs and tools to generate wsdl documentation
- store: the real mailbox service (SOAP APIs, IMAP, POP3 and CLI)
- Requirements:
- JDK version 11. Confirm by running:
$ javac -version
- gcc to build
native
module
- Build the Code by running:
$ mvn clean install -DskipTests
$ UID=${UID} GID=${GID} docker compose -f './docker/jetty-run/docker-compose.yml' run --rm build
Whenever you make changes to attrs.xml you can generate rights and ZAttr* classes by running:
mvn antrun:run@generate-zattr-rights
mvn antrun:run@generate-soap-docs
Following guide provides two different ways to run Carbonio Mailbox locally for Development:
Run com.zextras.mailbox.SampleLocalMailbox
main class in store module,
test directory.
This will start a Mailbox with in-memory LDAP and an HSQLDB database.
This option compiles the code, packages the artifacts, installs all the built Carbonio Mailbox packages, and then starts the services.
- Build the project:
$ mvn install -DskipTests
- Build packages using build_packages.sh:
The following commands will build the packages for ubuntu-focal, see
build_packages.sh for other supported targets.
$ ./build_packages.sh ubuntu-focal
- Navigate to the docker/single-server directory:
$ cd ./docker/single-server
- Start Carbonio-CE
Ubuntu Focal
docker image with built Carbonio Mailbox packages:NB: don't forget to use the$ docker compose --profile ubuntu-focal up --build
--build
flag, otherwise it will not load the new changes
This option compiles the code and launches the mailbox with a minimal setup, ideal for developing and testing SOAP and REST APIs exposed by Mailbox.
- Build the project using local mvn command (skipping tests
-DskipTests
):or build the project using docker container:$ mvn install -DskipTests
$ UID=${UID} GID=${GID} docker compose -f './docker/jetty-run/docker-compose.yml' run --rm build
- Navigate to the docker/jetty-run directory:
$ cd ./docker/jetty-run
- Run it:
$ docker compose up
- Check if the mailbox is up and running:
$ curl localhost:7070/service/health
All contributions are accepted! Please refer to the CONTRIBUTING file (if present in this repository) for more detail on how to contribute. If the repository has a Code of Conduct, we kindly ask to follow that as well.
See COPYING file for detail.