Extensive settings customization
We are trying to carefully select defaults to fit majority of users. It might happen that you will need to adjust settings which are not available through web administration or you might even want install some new part to mail server container.
Smaller changes
Let's say you want disable TLS requirement for IMAP and POP3, although it is not recommended you have a lot of legacy clients. First you need to know what you are gonna change. In our example we will need change file /etc/dovecot/conf.d/10-ssl.conf
$ docker exec -ti mailserver bash
root@994de2779f8e:/# mkdir -p /data/_override/etc/dovecot/conf.d
root@994de2779f8e:/# cp /etc/dovecot/conf.d/10-ssl.conf /data/_override/etc/dovecot/conf.d
root@994de2779f8e:/# exit
$ nano /mailserver-data-dir/_override/etc/dovecot/conf.d/10-ssl.conf # replace "ssl = required" with "ssl = yes"
$ docker restart mailserver
Custom Haraka plugins (v2.0.7+)
Adding custom plugins to Haraka can be done by creating following files within directories:
/data/haraka/smtp/config/my_plugin_for_port_25.ini
/data/haraka/smtp/plugins/my_plugin_for_port_25.js
/data/haraka/submission/config/my_plugin_for_port_587.ini
/data/haraka/submission/plugins/my_plugin_for_port_587.js
After restart it will be automatically added at the end of plugins
config file (adjusting hook priority might be needed).
Extending image
Docker provides an easy mechanism to customize or completely alter source image. In our example we will install "nano" only but you can do just whatever you want. See Dockerfile reference
$ mkdir poste.pro.ng $ echo "FROM poste.io/mailserver" >> poste.pro.ng/Dockerfile $ echo "RUN apt-get update && apt-get -y install nano" >> poste.pro.ng/Dockerfile $ docker login -u "username" -p "password" https://poste.io $ docker build -t mailserver.pro.ng poste.pro.ng $ # ... now you can run mailserver.pro.ng...
$ mkdir poste.ng $ echo "FROM analogic/poste.io" >> poste.ng/Dockerfile $ echo "RUN apt-get update && apt-get -y install nano" >> poste.ng/Dockerfile $ docker build -t mailserver.ng poste.ng $ # ... now you can run mailserver.ng...