Compare commits
10 Commits
0.0.10
...
stable_bef
Author | SHA1 | Date | |
---|---|---|---|
ee5ec605c6 | |||
3c855b055d | |||
d7ed6afe41 | |||
b57cc949d3 | |||
013c0c0859 | |||
8464bf1f41 | |||
0bf33c582f | |||
04ad6017e6
|
|||
f205858c30 | |||
9f65b7690e
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,4 @@
|
||||
*~
|
||||
.*~
|
||||
ENV
|
||||
ENV.test
|
||||
|
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" ]
|
||||
|
||||
|
||||
|
||||
|
@ -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%
|
||||
|
16
examples/deploy.sh
Executable file
16
examples/deploy.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
kubectl create secret generic smtp-secrets \
|
||||
--dry-run=client \
|
||||
-o yaml \
|
||||
--save-config \
|
||||
--from-literal=SMARTHOST="smtprelaypool.ispgateway.de" \
|
||||
--from-literal=SMARTHOST_USER="pseudosmarthostuser@hottis.de" \
|
||||
--from-literal=SMARTHOST_PASS="$SMARTHOST_PASSWORD" \
|
||||
--from-literal=RELAY_NETWORKS=":10.0.0.0/8" | \
|
||||
kubectl apply -n system -f -
|
||||
|
||||
kubectl apply -n system -f deploy.yml
|
||||
|
||||
|
42
examples/deploy.yml
Normal file
42
examples/deploy.yml
Normal file
@ -0,0 +1,42 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: smtp
|
||||
labels:
|
||||
app: smtp
|
||||
annotations:
|
||||
secret.reloader.stakater.com/reload: smtp-secrets
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: smtp
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: smtp
|
||||
spec:
|
||||
containers:
|
||||
- name: smtp
|
||||
image: quay.io/wollud1969/exim-docker:0.2.1
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: smtp-secrets
|
||||
ports:
|
||||
- containerPort: 25
|
||||
protocol: TCP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: smtp
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: smtp
|
||||
ports:
|
||||
- name: smtp
|
||||
protocol: TCP
|
||||
port: 25
|
||||
targetPort: 25
|
||||
|
@ -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 \
|
||||
|
66
exim.conf.m4
Normal file
66
exim.conf.m4
Normal file
@ -0,0 +1,66 @@
|
||||
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
|
||||
|
||||
tls_advertise_hosts =
|
||||
|
||||
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