Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
013c0c0859 | |||
8464bf1f41 | |||
0bf33c582f | |||
04ad6017e6
|
|||
f205858c30 | |||
9f65b7690e
|
25
Dockerfile
25
Dockerfile
@ -1,33 +1,28 @@
|
||||
FROM debian:bookworm
|
||||
FROM alpine:3.21.0
|
||||
|
||||
LABEL Maintainer="Wolfgang Hottgenroth <woho@hottis.de>"
|
||||
LABEL ImageName=""
|
||||
LABEL ImageName="quay.io/wollud1969/exim-docker"
|
||||
|
||||
# domain to be used in sender address of sent mails
|
||||
ENV LOCALMAILNAME=""
|
||||
# smarthost to send mail to
|
||||
ENV SMARTHOST=""
|
||||
# recipient addresses for root aliases, separate multiple addresses by space
|
||||
ENV ROOT=""
|
||||
ENV SMARTHOST_USER=""
|
||||
ENV SMARTHOST_PASS=""
|
||||
# ip addresses or networks to allow for relaying, separate multiple ones by semicolon
|
||||
ENV RELAYNETS=""
|
||||
ENV RELAYNETS="127.0.0.1/32"
|
||||
|
||||
RUN \
|
||||
apt update && \
|
||||
apt upgrade -y --autoremove && \
|
||||
apt install -y exim4-daemon-light ca-certificates curl && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
RUN apk add --no-cache exim m4
|
||||
|
||||
COPY update-exim4.conf.tmpl /etc/exim4/
|
||||
COPY aliases.tmpl /etc/exim4/
|
||||
COPY adjust-config.sh /etc/exim4/
|
||||
COPY start.sh /etc/exim4/
|
||||
COPY exim.conf.m4 /etc/exim
|
||||
COPY start.sh /etc/exim
|
||||
|
||||
WORKDIR /etc/exim4
|
||||
WORKDIR /etc/exim
|
||||
|
||||
EXPOSE 25
|
||||
|
||||
CMD [ "./start.sh" ]
|
||||
#CMD [ "/usr/bin/m4 exim.conf.m4 > exim.conf && /usr/sbin/exim -bd -q15m -v" ]
|
||||
|
||||
|
||||
|
||||
|
9
ENV
Normal file
9
ENV
Normal file
@ -0,0 +1,9 @@
|
||||
export HOSTNAME=`hostname`
|
||||
export LOCALMAILNAME="hottis.de"
|
||||
#export LOCALMAILNAME=""
|
||||
export SMARTHOST=smtprelaypool.ispgateway.de
|
||||
#export SMARTHOST=""
|
||||
export SMARTHOST_USER=pseudosmarthostuser@hottis.de
|
||||
#export SMARTHOST_USER="_"
|
||||
export SMARTHOST_PASS="Chaediek3Chaer7u"
|
||||
export RELAYNETS="0.0.0.0/0"
|
@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cat update-exim4.conf.tmpl \
|
||||
| sed -e 's/%HOSTNAME%/'$HOSTNAME'/' \
|
||||
-e 's#%RELAYNETS%#'$RELAYNETS'#' \
|
||||
-e 's/%LOCALMAILNAME%/'$LOCALMAILNAME'/' \
|
||||
-e 's/%SMARTHOST%/'$SMARTHOST'/' \
|
||||
> update-exim4.conf.conf
|
||||
cat aliases.tmpl \
|
||||
| sed -e 's/%ROOT%/'"$ROOT"'/' \
|
||||
> ../aliases && \
|
||||
newaliases
|
||||
|
||||
/usr/sbin/update-exim4.conf -v
|
||||
|
14
aliases.tmpl
14
aliases.tmpl
@ -1,14 +0,0 @@
|
||||
mailer-daemon: postmaster
|
||||
postmaster: root
|
||||
nobody: root
|
||||
hostmaster: root
|
||||
usenet: root
|
||||
news: root
|
||||
webmaster: root
|
||||
www: root
|
||||
ftp: root
|
||||
abuse: root
|
||||
noc: root
|
||||
security: root
|
||||
root: %ROOT%
|
||||
|
@ -18,7 +18,6 @@ docker run \
|
||||
-e SMARTHOST=smarthost.example.com \
|
||||
-e LOCALMAILNAME=example.com \
|
||||
-e RELAYNETS=$RELAYNETS \
|
||||
-e ROOT=root@example.com \
|
||||
--network $MAILER_NETWORK \
|
||||
--name mailer \
|
||||
--restart always \
|
||||
|
64
exim.conf.m4
Normal file
64
exim.conf.m4
Normal file
@ -0,0 +1,64 @@
|
||||
dnl values
|
||||
define(`HOSTNAME', esyscmd(`echo -n $HOSTNAME'))dnl
|
||||
define(`LOCALMAILNAME', esyscmd(`echo -n $LOCALMAILNAME'))dnl
|
||||
define(`SMARTHOST', esyscmd(`echo -n $SMARTHOST'))dnl
|
||||
define(`SMARTHOST_USER', esyscmd(`echo -n $SMARTHOST_USER'))dnl
|
||||
define(`SMARTHOST_PASS', esyscmd(`echo -n $SMARTHOST_PASS'))dnl
|
||||
define(`RELAYNETS', esyscmd(`echo -n $RELAYNETS'))dnl
|
||||
|
||||
ifelse(SMARTHOST, `', `
|
||||
errprint(`Error: SMARTHOST not set')
|
||||
m4exit(1)
|
||||
')
|
||||
|
||||
ifelse(HOSTNAME, `', `
|
||||
errprint(`Error: HOSTNAME not set')
|
||||
m4exit(1)
|
||||
')
|
||||
|
||||
dnl template for exim.conf
|
||||
|
||||
primary_hostname = HOSTNAME
|
||||
|
||||
acl_smtp_rcpt = acl_check_rcpt
|
||||
|
||||
begin routers
|
||||
smarthost_route:
|
||||
driver = manualroute
|
||||
domains = *
|
||||
transport = smarthost_smtp
|
||||
route_list = * SMARTHOST
|
||||
|
||||
begin transports
|
||||
smarthost_smtp:
|
||||
driver = smtp
|
||||
port = 25
|
||||
multi_domain
|
||||
ifelse(SMARTHOST_USER, `', `', `dnl
|
||||
hosts_require_auth = *
|
||||
')
|
||||
|
||||
ifelse(SMARTHOST_USER, `', `', `
|
||||
begin authenticators
|
||||
plain:
|
||||
driver = plaintext
|
||||
public_name = PLAIN
|
||||
client_send = ^SMARTHOST_USER^SMARTHOST_PASS
|
||||
|
||||
login:
|
||||
driver = plaintext
|
||||
public_name = LOGIN
|
||||
client_send = : SMARTHOST_USER : SMARTHOST_PASS
|
||||
')
|
||||
|
||||
begin acl
|
||||
acl_check_rcpt:
|
||||
accept
|
||||
hosts = RELAYNETS
|
||||
deny
|
||||
message = "Relaying denied"
|
||||
|
||||
ifelse(LOCALMAILNAME, `', `', `
|
||||
begin rewrite
|
||||
*@* ${1}@LOCALMAILNAME Ffrs
|
||||
')
|
5
start.sh
5
start.sh
@ -1,5 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
./adjust-config.sh
|
||||
exim -bd -q15m
|
||||
m4 exim.conf.m4 > exim.conf && exim -bd -q15m -v
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
dc_eximconfig_configtype='satellite'
|
||||
dc_other_hostnames='%HOSTNAME%'
|
||||
dc_local_interfaces='0.0.0.0'
|
||||
dc_readhost='%LOCALMAILNAME%'
|
||||
dc_relay_domains=''
|
||||
dc_minimaldns='false'
|
||||
dc_relay_nets='%RELAYNETS%'
|
||||
dc_smarthost='%SMARTHOST%'
|
||||
CFILEMODE='644'
|
||||
dc_use_split_config='false'
|
||||
dc_hide_mailname='true'
|
||||
dc_mailname_in_oh='true'
|
||||
dc_localdelivery='mail_spool'
|
||||
|
Reference in New Issue
Block a user