//Cloudogu EcoSystem Docs

Local mail dispatch

To check if the mail dispatch of the Postfix dogu works, MailHog can be used. MailHog is a tool for testing mail in a local development environment. MailHog sets up a local pseudo-SMTP server.

Setting up MailHog

In a nutshell, MailHog runs locally on the host machine as a Docker container and is configured in the local CES as a Relay host of the postfix dogus entered.

Specifically, the following steps need to be performed:

  • Run MailHog on the host machine as a Docker container:

    docker run -d -p 1025:1025 -p 8025:8025 mailhog/mailhog 
  • Set MailHog in the local CES as the relay host of the Postfix dog:

    etcdctl set /config/postfix/relayhost
  • Remove postfix-dogu via cesapp and create new one

    cesapp recreate postfix
  • Start postfix-dogu

    cesapp start postfix 
  • Change to the bash of the Dogu

    docker exec -it postfix bash 
  • Send mail

    sendmail -t testmail@cloudogu.de
    text 1234
  • In web interface of MailHog - `localhost:8025 - check mail reception

Setting up a proxy in front of MailHog to test authentication workflows.

MailHog does not support authentication, therefore using the tool E-MailRelay tool to set up a proxy in front of MailHog.

To do this, E-MailRelay must be downloaded, unpacked and installed sudo ./configure && sudo make && sudo make install.

For the authentication a password file can be created, which can look like this for example


server plain adminuser adminpw

E-MailRelay can be created using

sudo emailrelay -t --as-server --forward-on-disconnect --log --verbose --log-file mailrelay.log --log-time --port 587 --forward-to localhost:1025 --server-auth ./secret.auth

can be started as a proxy before MailHog.

The -t parameter starts the proxy in a terminal session. This makes it easier to restart the server. The relay host must point to the address specified with the -port.

etcdctl set /config/postfix/relayhost

Afterwards the appropriate password for Postfix can be configured. SASL authentication is then used when sending mails:

etcdctl set /config/postfix/sasl_username adminuser
etcdctl set /config/postfix/sasl_password adminpw