initial commit
This commit is contained in:
commit
3fd989f070
3
.gitignore
vendored
Executable file
3
.gitignore
vendored
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
|
*.swp
|
9
Dockerfile
Normal file
9
Dockerfile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
FROM thallian/confd-env:latest
|
||||||
|
|
||||||
|
RUN apk add --no-cache postfix postfix-ldap
|
||||||
|
|
||||||
|
EXPOSE 25 587
|
||||||
|
|
||||||
|
VOLUME /etc/ssl/mail
|
||||||
|
|
||||||
|
ADD /rootfs /
|
3
rootfs/etc/confd/conf.d/ldap-virtual-alias-maps.cf.toml
Normal file
3
rootfs/etc/confd/conf.d/ldap-virtual-alias-maps.cf.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[template]
|
||||||
|
src = "ldap-virtual-alias-maps.cf.tmpl"
|
||||||
|
dest = "/etc/postfix/ldap-virtual-alias-maps.cf"
|
@ -0,0 +1,3 @@
|
|||||||
|
[template]
|
||||||
|
src = "ldap-virtual-mailbox-domains.cf.tmpl"
|
||||||
|
dest = "/etc/postfix/ldap-virtual-mailbox-domains.cf"
|
@ -0,0 +1,3 @@
|
|||||||
|
[template]
|
||||||
|
src = "ldap-virtual-mailbox-maps.cf.tmpl"
|
||||||
|
dest = "/etc/postfix/ldap-virtual-mailbox-maps.cf"
|
3
rootfs/etc/confd/conf.d/main.cf.toml
Normal file
3
rootfs/etc/confd/conf.d/main.cf.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[template]
|
||||||
|
src = "main.cf.tmpl"
|
||||||
|
dest = "/etc/postfix/main.cf"
|
3
rootfs/etc/confd/conf.d/master.cf.toml
Normal file
3
rootfs/etc/confd/conf.d/master.cf.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[template]
|
||||||
|
src = "master.cf.tmpl"
|
||||||
|
dest = "/etc/postfix/master.cf"
|
@ -0,0 +1,9 @@
|
|||||||
|
server_host = {{getenv "LDAPURI"}}
|
||||||
|
start_tls = {{getenv "LDAPSTARTTLS"}}
|
||||||
|
bind = yes
|
||||||
|
bind_dn = {{getenv "LDAPBINDDN" }}
|
||||||
|
bind_pw = {{getenv "LDAPBINDPASSWORD"}}
|
||||||
|
search_base = {{getenv "LDAPMAILBOXSEARCHBASE"}}
|
||||||
|
version = 3
|
||||||
|
query_filter = {{getenv "LDAPALIASQUERYFILTER"}}
|
||||||
|
result_attribute = {{getenv "LDAPMAILBOXRESULTATTRIBUTE"}}
|
@ -0,0 +1,9 @@
|
|||||||
|
server_host = {{getenv "LDAPHOST"}}
|
||||||
|
start_tls = {{getenv "LDAPSTARTTLS"}}
|
||||||
|
bind = yes
|
||||||
|
bind_dn = {{getenv "LDAPBINDDN" }}
|
||||||
|
bind_pw = {{getenv "LDAPBINDPASSWORD"}}
|
||||||
|
search_base = {{getenv "LDAPDOMAINSEARCHBASE"}}
|
||||||
|
version = 3
|
||||||
|
query_filter = {{getenv "LDAPDOMAINQUERYFILTER"}}
|
||||||
|
result_attribute = {{getenv "LDAPDOMAINRESULTATTRIBUTE"}}
|
@ -0,0 +1,9 @@
|
|||||||
|
server_host = {{getenv "LDAPURI"}}
|
||||||
|
start_tls = {{getenv "LDAPSTARTTLS"}}
|
||||||
|
bind = yes
|
||||||
|
bind_dn = {{getenv "LDAPBINDDN" }}
|
||||||
|
bind_pw = {{getenv "LDAPBINDPASSWORD"}}
|
||||||
|
search_base = {{getenv "LDAPMAILBOXSEARCHBASE"}}
|
||||||
|
version = 3
|
||||||
|
query_filter = {{getenv "LDAPMAILBOXQUERYFILTER"}}
|
||||||
|
result_attribute = {{getenv "LDAPMAILBOXRESULTATTRIBUTE"}}
|
32
rootfs/etc/confd/templates/main.cf.tmpl
Normal file
32
rootfs/etc/confd/templates/main.cf.tmpl
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
compatibility_level = 2
|
||||||
|
queue_directory = /var/spool/postfix
|
||||||
|
command_directory = /usr/sbin
|
||||||
|
daemon_directory = /usr/lib/postfix
|
||||||
|
data_directory = /var/lib/postfix
|
||||||
|
mail_owner = postfix
|
||||||
|
myhostname = {{getenv "MYHOSTNAME"}}
|
||||||
|
mydomain = {{getenv "MYDOMAIN"}}
|
||||||
|
myorigin = $mydomain
|
||||||
|
mydestination = localhost
|
||||||
|
unknown_local_recipient_reject_code = 550
|
||||||
|
mynetworks_style = subnet
|
||||||
|
relay_domains = $mydestination
|
||||||
|
recipient_delimiter = +
|
||||||
|
mailbox_transport = lmtp:{{getenv "LMTPHOST"}}
|
||||||
|
smtpd_banner = $myhostname ESMTP $mail_name
|
||||||
|
virtual_mailbox_domains = proxy:ldap:/etc/postfix/ldap-virtual-mailbox-domains.cf
|
||||||
|
virtual_mailbox_maps = proxy:ldap:/etc/postfix/ldap-virtual-mailbox-maps.cf
|
||||||
|
virtual_alias_maps = proxy:ldap:/etc/postfix/ldap-virtual-alias-maps.cf
|
||||||
|
virtual_transport = lmtp:inet:{{getenv "LMTPHOST"}}:{{getenv "LMTPPORT"}}
|
||||||
|
dovecot_destination_recipient_limit = 1
|
||||||
|
smtpd_sasl_type = dovecot
|
||||||
|
smtpd_sasl_path = inet:{{getenv "DOVECOTHOST"}}:{{getenv "DOVECOTAUTHPORT"}}
|
||||||
|
smtpd_sasl_auth_enable = yes
|
||||||
|
smtpd_tls_security_level = {{getenv "TLSSECURITYLEVEL"}}
|
||||||
|
smtpd_tls_auth_only = yes
|
||||||
|
smtpd_milters =
|
||||||
|
inet:{{getenv "SPAMASSASSINHOST"}}:{{getenv "SPAMASSASSINPORT"}}
|
||||||
|
non_smtpd_milters = $smtpd_milters
|
||||||
|
milter_default_action = accept
|
||||||
|
milter_connect_macros = "i j {daemon_name} v {if_name} _"
|
||||||
|
message_size_limit = {{getenv "MESSAGESIZELIMIT"}}
|
59
rootfs/etc/confd/templates/master.cf.tmpl
Normal file
59
rootfs/etc/confd/templates/master.cf.tmpl
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{{range $mailhosts := split (getenv "MAILHOSTS") ";"}}
|
||||||
|
{{$values := split ($admin_value) ":"}}
|
||||||
|
{{index $values 0}}:smtp inet n - - - - smtpd
|
||||||
|
-o myhostname={{index $values 1}}
|
||||||
|
-o smtpd_tls_key_file=/etc/ssl/mail/{{index $values 1}}/privkey.pem
|
||||||
|
-o smtpd_tls_cert_file=/etc/ssl/mail/{{index $values 1}}//fullchain.pem
|
||||||
|
|
||||||
|
{{index $values 1}}-out unix - - - - - smtp
|
||||||
|
-o smtp_bind_address={{index $values 0}}
|
||||||
|
-o smtp_helo_name={{index $values 2}}
|
||||||
|
-o syslog_name=postfix-{{index $values 2}}
|
||||||
|
|
||||||
|
{{index $values 0}}:submission inet n - - - - smtpd
|
||||||
|
-o syslog_name=postfix/submission
|
||||||
|
-o smtpd_tls_security_level=encrypt
|
||||||
|
-o smtpd_sasl_auth_enable=yes
|
||||||
|
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
|
||||||
|
-o milter_macro_daemon_name=ORIGINATING
|
||||||
|
-o smtpd_tls_key_file=/etc/ssl/mail/{{index $values 1}}/privkey.pem
|
||||||
|
-o smtpd_tls_cert_file=/etc/ssl/mail/{{index $values 1}}//fullchain.pem
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
pickup fifo n - - 60 1 pickup
|
||||||
|
cleanup unix n - - - 0 cleanup
|
||||||
|
qmgr fifo n - n 300 1 qmgr
|
||||||
|
#qmgr fifo n - n 300 1 oqmgr
|
||||||
|
tlsmgr unix - - - 1000? 1 tlsmgr
|
||||||
|
rewrite unix - - - - - trivial-rewrite
|
||||||
|
bounce unix - - - - 0 bounce
|
||||||
|
defer unix - - - - 0 bounce
|
||||||
|
trace unix - - - - 0 bounce
|
||||||
|
verify unix - - - - 1 verify
|
||||||
|
flush unix n - - 1000? 0 flush
|
||||||
|
proxymap unix - - n - - proxymap
|
||||||
|
proxywrite unix - - n - 1 proxymap
|
||||||
|
smtp unix - - - - - smtp
|
||||||
|
relay unix - - - - - smtp
|
||||||
|
showq unix n - - - - showq
|
||||||
|
error unix - - - - - error
|
||||||
|
retry unix - - - - - error
|
||||||
|
discard unix - - - - - discard
|
||||||
|
local unix - n n - - local
|
||||||
|
virtual unix - n n - - virtual
|
||||||
|
lmtp unix - - - - - lmtp
|
||||||
|
anvil unix - - - - 1 anvil
|
||||||
|
scache unix - - - - 1 scache
|
||||||
|
maildrop unix - n n - - pipe
|
||||||
|
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
|
||||||
|
uucp unix - n n - - pipe
|
||||||
|
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
|
||||||
|
ifmail unix - n n - - pipe
|
||||||
|
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
|
||||||
|
bsmtp unix - n n - - pipe
|
||||||
|
flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -t$nexthop -f$sender $recipient
|
||||||
|
scalemail-backend unix - n n - 2 pipe
|
||||||
|
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
|
||||||
|
mailman unix - n n - - pipe
|
||||||
|
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
|
||||||
|
${nexthop} ${user}
|
0
rootfs/etc/services.d/postfix/run
Normal file
0
rootfs/etc/services.d/postfix/run
Normal file
Loading…
Reference in New Issue
Block a user