Configuring mail

The application sometimes sends emails to users, for example when the users have been subscribed to a document or folder.

By default tomcat mail is configured assuming your server has a mail service binding in your localhost.

These are the default values:

spring.mail.host=localhost
spring.mail.port=25
spring.mail.username=
spring.mail.password=
spring.mail.from=noreply@openkm.com
spring.mail.properties.mail.smtp.auth=false
spring.mail.properties.mail.smtp.starttls.enable=false

Change mail configuration

Get your mail account data ( same than you will use to configure standard mail client, like Outlook or Thunderbird ).

Edit the file $TOMCAT_HOME/openkm.properties:  

vim /home/openkm/tomcat-8.5.69/openkm.properties

After editing the openkm.properties file should looks something like this:

spring.mail.host=localhost
spring.mail.port=25
spring.mail.username=
spring.mail.password=
spring.mail.from=noreply@openkm.com
spring.mail.properties.mail.smtp.auth=false
spring.mail.properties.mail.smtp.starttls.enable=false

Gmail example

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=<username>
spring.mail.password=<password>
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.ssl.trust=smtp.gmail.com
spring.mail.properties.mail.debug=true

Office 365

spring.mail.host=smtp.office365.com
spring.mail.username=<username>
spring.mail.password=<password>
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.ssl.trust=smtp.office365.com
spring.mail.properties.mail.debug=true

Email server with old SSL configuration

spring.mail.host=mail.myserver.com
spring.mail.port=465
spring.mail.username=<username>
spring.mail.password=<password>
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.debug=true

Additional information

Optionally, you can use these attributes :

  • spring.mail.user="<username>"

Be careful with spring.mail.test-connection because when enabled, if the mail server connections test fails openkm won't start:

  • spring.mail.test-connection=true

If you get problems during tomcat startup, can try using the attribute spring.mail.smtp.quitwait="false".

A complete list of all available parameters can be found at sun.mail.smtp package Javadoc and javax.mail package Javadoc.

Note that depending on the SMTP server configuration only the address configured in spring.mail.smtp.user may be able to send messages, this mean, the user who appears in the "From" mail header.

Testing configuration

Sometimes configuring mail can be complex and error-prone because there is a lot of configuration parameters and many differents mail servers. To ease this configuration we have developed a utility called OKMMailChecker which helps you to test the mail configuration whithout the need of restarting OpenKM, which takes time and make it unavailable for users during these tests.

Usage

This utility can be downloaded from https://download.openkm.com and should be placed into OpenKM directory, where the openkm.properties is located. Indeed, this utility will read the mail configuration from this file. This utility has several parameters which will be used to send the test mail:

  • -f, --from: From used to send the test mail (required)
  • -t, --to: To used to send the test mail (required)
  • -a, --atachment: An optional file to be sent as attachment

You can execute the utility this way:

$ java -jar OKMMailChecker.jar -f origin@openkm.com -t destination@openkm.com -a SampleFile.txt