pini-gh / docker-exim4 Goto Github PK
View Code? Open in Web Editor NEWDebian based exim4 container with plugin mecanism for third parties configuration files
Debian based exim4 container with plugin mecanism for third parties configuration files
@pini-gh , thanks for making this container and configuration available. I am in the process to set things up - this is what I did so far:
Assuming my server domain is example.com
and I have the docker-mailman
setup running in the mailman-docker
stack - with the postorius
web interface available at https://lists.example.com
)
To start, the first thing I did was to generate locally on the host machine a pair of TLS perm and key with the following instruction:
/usr/bin/openssl req -x509 -sha256 -days 9000 -nodes -newkey rsa:4096 -keyout example.com.key -out example.com.cert
I left those files in the root directory of the docker-compose file. So the .env
file did not require any change (besides using my real domain instead of 'example') and this is how it looks like:
COMPOSE_PROJECT_NAME=exim4
SERVER_HOSTNAME=exim4
SERVER_DOMAINNAME=example.com
SERVER_MAILNAME=exim4.example.com
# Semicolon separated list of local domains for incoming mail
LOCAL_DOMAINS=lists.example.com
# TLS enabled if and only if set to "TRUE" (case sensitive)
EXIM4_TLS_ENABLE=TRUE
EXIM4_TLS_CERTIFICATE=example.com.crt
EXIM4_TLS_PRIVATEKEY=example.com.key
Q: I wonder how to make sure those files (.crt
and .key
) are available to the exim container - should I mount them as volumes in a special location (e.g.: /var/spool/exim4/cert
) or is the path to those files the one I set in the .env
file?
As mentioned in maxking/docker-mailman#414 I am trying to make this environment working within the mailman
setup. So I guess I need to enable the mailman
plug-in in the env_plugin
file uncommenting the relative line which now looks like:
# Json table for mailman servers if any
PLUGIN_SPEC_MAILMAN={"plugin": "mailman", "instances": [{"domainlist": "lists.example.com", "host": "mailman-core", "home": "/opt/lists.example.com/var"}]}
Do I need to make sure the "/opt/lists.example.com/var"
directory is available (e.g.: run on the host machine: mkdir -p /opt/lists.example.com/var
)
I then uncommented the line related to mailman in the volumes
volumes:
- cert:/var/spool/exim4/cert
- mailman_core-vol:/opt/lists.example.com:ro
Finally, I run the docker-compose and when attempting to use the postorius web-interface ... I got it to work!
I no longer have the error:
smtplib.SMTPRecipientsRefused: {'[email protected]': (451, b'4.3.0 <[email protected]>: Temporary lookup failure')}
And I was actually able to use the interface - I was able to reset the password by receiving the :
I logged in and created a domain and I received another e-mail:
I then created a new mailing list for testing purpose, and I received a welcoming e-maiol:
To post to this list, send your email to:
[email protected]
You can unsubscribe or make adjustments to your options via email by
sending a message to:
[email protected]
Yeah! ... I then tried to send a message, but It failed - this the message I got:
Undelivered Mail Returned to Sender
This is a system-generated message to inform you that your email could not
be delivered to one or more recipients. Details of the email and the error are as follows:
<[email protected]>: host mail.example.com[178.63.52.22] said: 550 relay not
permitted (in reply to RCPT TO command)
Reporting-MTA: dns; ms11p00im-qufo17282101.me.com
X-Postfix-Queue-ID: 9354A7801F1
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Sun, 8 Nov 2020 19:40:12 +0000 (UTC)
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.0.0
Remote-MTA: dns; mail.example.com
Diagnostic-Code: smtp; 550 relay not permitted
"""You need to add the IP address of your host(s) to the list of the "permitted relayers"."""
I guess I am still missing few bits ...
Thanks a lot for your help!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.