Distributed James Server — imapserver.xml
Consult this example to get some examples and hints.
The IMAP4 service is controlled by a configuration block in the imap4server.xml. The imap4server tag defines the boundaries of the configuration block. It encloses all the relevant configuration for the IMAP4 server. The behavior of the IMAP4 service is controlled by the attributes and children of this tag.
This tag has an optional boolean attribute - enabled - that defines whether the service is active or not. The value defaults to "true" if not present.
The standard children of the imapserver tag are:
Property name | explanation |
---|---|
bind |
Configure this to bind to a specific inetaddress. This is an optional integer value. This value is the port on which this IMAP4 server is configured to listen. If the tag or value is absent then the service will bind to all network interfaces for the machine If the tag or value is omitted, the value will default to the standard IMAP4 port port 143 is the well-known/IANA registered port for IMAP port 993 is the well-known/IANA registered port for IMAPS ie over SSL/TLS |
connectionBacklog |
Number of connection backlog of the server (maximum number of queued connection requests) |
compress |
true or false - Use or don’t use COMPRESS extension. Defaults to false. |
maxLineLength |
Maximal allowed line-length before a BAD response will get returned to the client This should be set with caution as a to high value can make the server a target for DOS (Denial of Service)! |
inMemorySizeLimit |
Optional. Size limit before we will start to stream to a temporary file. Defaults to 10MB. Must be a positive integer, optionally with a unit: B, K, M, G. |
literalSizeLimit |
Optional. Maximum size of a literal (IMAP APPEND). Defaults to 0 (unlimited). Must be a positive integer, optionally with a unit: B, K, M, G. |
plainAuthDisallowed |
Deprecated. Should use |
auth.plainAuthEnabled |
Whether to enable Authentication PLAIN/ LOGIN command. Defaults to |
auth.requireSSL |
true or false. Defaults to |
auth.oidc.oidcConfigurationURL |
Provide OIDC url address for information to user. Only configure this when you want to authenticate IMAP server using a OIDC provider. |
auth.oidc.jwksURL |
Provide url to get OIDC’s JSON Web Key Set to validate user token. Only configure this when you want to authenticate IMAP server using a OIDC provider. |
auth.oidc.claim |
Claim string uses to identify user. E.g: "email_address". Only configure this when you want to authenticate IMAP server using a OIDC provider. |
auth.oidc.scope |
An OAuth scope that is valid to access the service (RF: RFC7628). Only configure this when you want to authenticate IMAP server using a OIDC provider. |
timeout |
Default to 30 minutes. After this time, inactive channels that have not performed read, write, or both operation for a while will be closed. Negative value disable this behaviour. |
enableIdle |
Default to true. If enabled IDLE commands will generate a server heartbeat on a regular period. |
idleTimeInterval |
Defaults to 120. Needs to be a strictly positive integer. |
idleTimeIntervalUnit |
Default to SECONDS. Needs to be a parseable TimeUnit. |
disabledCaps |
Implemented server capabilities NOT to advertise to the client. Coma separated list. Defaults to no disabled capabilities. |
jmxName |
The name given to the configuration |
tls |
Set to true to support STARTTLS or SSL for the Socket.
To use this you need to copy sunjce_provider.jar to /path/james/lib directory. To create a new keystore execute:
|
handler.helloName |
This is the name used by the server to identify itself in the IMAP4 protocol. If autodetect is TRUE, the server will discover its own host name and use that in the protocol. If discovery fails, the value of 'localhost' is used. If autodetect is FALSE, James will use the specified value. |
connectiontimeout |
Connection timeout in seconds |
connectionLimit |
Set the maximum simultaneous incoming connections for this service |
connectionLimitPerIP |
Set the maximum simultaneous incoming connections per IP for this service |
OIDC setup
James IMAP support XOAUTH2 authentication mechanism which allow authenticating against a OIDC providers.
Please configure auth.oidc
part to use this.
We do supply an example of such a setup. It uses the Keycloak OIDC provider, but usage of similar technologies is definitely doable.
Mail user agents auto-configuration
Check this example on Mail user agents auto-configuration.