Distributed James Server — Configuration
This section presents how to configure the Distributed server.
The Distributed Server relies on separated files for configuring various components. Some files follow a xml format and some others follow a property format. Some files can be omitted, in which case the functionality can be disabled, or rely on reasonable defaults.
The following configuration files are exposed:
For protocols
By omitting these files, the underlying protocols will be disabled.
-
imapserver.xml allows configuration for the IMAP protocol example
-
jmap.properties allows to configure the JMAP protocol example
-
jmx.properties allows configuration of JMX being used by the Command Line Interface example
-
lmtpserver.xml allows configuring the LMTP protocol example
-
managesieveserver.xml allows configuration for ManagedSieve (unsupported) example
-
pop3server.xml allows configuration for the POP3 protocol (experimental) example
-
smtpserver.xml allows configuration for the SMTP protocol example
-
This page list SMTP hooks that can be used out of the box with the Distributed Server.
-
-
webadmin.properties enables configuration for the WebAdmin protocol example
-
This page details SSL & TLS configuration.
-
This page details Sieve setup and how to enable ManageSieve.
For storage dependencies
Except specific documented cases, these files are required, at least to establish a connection with the storage components.
-
blobstore.properties allows to configure the BlobStore example
-
cassandra.properties allows to configure the Cassandra driver example
-
opensearch.properties allows to configure OpenSearch driver example
-
rabbitmq.properties allows configuration for the RabbitMQ driver example
-
redis.properties allows configuration for the Redis driver example, that is used by optional distributed rate limiting component.
-
tika.properties allows configuring Tika as a backend for text extraction example
For core components
By omitting these files, sane default values are used.
-
batchsizes.properties allows to configure mailbox read batch sizes example
-
dnsservice.xml allows to configure DNS resolution example
-
domainlist.xml allows to configure Domain storage example
-
healthcheck.properties allows to configure periodical healthchecks example
-
mailetcontainer.xml allows configuring mail processing example
-
mailrepositorystore.xml enables registration of allowed MailRepository protcols and link them to MailRepository implementations example
-
recipientrewritetable.xml enables advanced configuration for the Recipient Rewrite Table component example
-
usersrepository.xml allows configuration of user storage example
For extensions
By omitting these files, no extra behaviour is added.
-
deletedMessageVault.properties allows to configure the DeletedMessageVault example
-
listeners.xml enables configuration of Mailbox Listeners example
-
extensions.properties allows to extend James behaviour by loading your extensions in it example
-
jvm.properties lets you specify additional system properties without cluttering your command line
-
This page documents Anti-Spam setup with SpamAssassin, Rspamd.
-
This page proposes a simple strategy for RemoteDelivery error handling.
-
This page documents contact collection
-
This page documents event collection
-
this page specified how to support SMTP Delivery Submission Notification (RFC-3461)
System properties
Some tuning can be done via system properties. This includes:
Property name | explanation |
---|---|
james.message.memory.threshold |
(Optional). String (size, integer + size units, example: |
james.message.usememorycopy |
Optional. Boolean. Defaults to false. Recommended value is false. Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold be copied to temporary files? |