Project

General

Profile

CdmServer in docker instance sending e-mails » History » Version 3

Belen Escobari, 04/18/2023 10:28 AM

1 1 Katja Luther
# CdmServer in docker instance sending e-mails
2
3
## Problem:
4
5
For the self registration in phycobank it is necessary that the cdmServer is able to send emails. This works fine for the cdmServer running on the host system, but fails when the cdmServer is running in a docker instance.
6
7 3 Belen Escobari
The mail is sent with org.springframework.mail.javamail.JavaMailSender and the host is defined as localhost, this does not work within docker because the MTA (exim4) runs on the host machine. 
8 1 Katja Luther
9
## Ideas:
10
11
First we have to install ssmtp on docker-container, this is already done with inside Dockerfile:
12
13
~~~
14
RUN apt-get update && apt-get install -y ssmtp && rm -rf /var/lib/apt/lists/*
15
16
COPY ssmtp.conf /etc/ssmtp/ssmtp.conf
17
~~~
18
19
To analyse the ip configuration also iproute2 is installed:
20
21
~~~
22
RUN apt-get update && apt-get install -y iproute2 && rm -rf /var/lib/apt/lists/*
23
~~~
24
25
Some urls to find ideas how to fix the problem:
26
27
https://gehrcke.de/2014/07/discourse-docker-container-send-mail-through-exim/
28
https://stackoverflow.com/questions/26215021/configure-sendmail-inside-a-docker-container/30021595#30021595 (using postfix instead of exim4)
29
30
How to connect from inside the docker instance to localhost:
31
https://www.howtogeek.com/devops/how-to-connect-to-localhost-within-a-docker-container/
32
Configure firewall to allow the docker container connecting to host MTA
33
https://docs.docker.com/network/iptables/
34
https://serverfault.com/questions/705192/iptables-rule-set-so-that-a-docker-container-can-access-a-service-on-a-host-ip
35 2 Katja Luther
36
The docker container can be started with different network modes, for us it is the bridge mode, this means between docker container and host system there is a bridge with different IP adresses on container side (172.17.0.1) and host side (172.17.0.1). 
37
So we need to configure exim4 to listen also on 172.17.0.1 and ssmtp to send the mails to 172.17.0.2 (mailhub).