Commit graph

179 commits

Author SHA1 Message Date
Bojan Čekrlić d8873c8efb Merge branch 'master' of github.com:bokysan/docker-postfix 2019-03-07 08:29:33 +01:00
Bojan Čekrlić 456e00e8b4 DomainKeys fixes
This fix makes it more explicit that "mail" segment must be used
with this DKIM and adds a few more code to the DKIM part to make
it more resillient and useful.
2019-03-06 13:07:26 +01:00
Matias 6cbb7d0837 Add packages needed to authenticate to gmail (#10)
* Add packages needed to correctly authenticate using a gmail relay
* Squishing 'apk add' lines
2019-02-25 14:28:16 +01:00
Bojan Čekrlić a1cffc6b23 More resillient builds
It turns out that builds cannot be predictable - different accounts
were assigned by different build systems. Consequentially we install
each tool separately.
2019-02-19 12:08:13 +01:00
Bojan Čekrlić 38d7627d96 OpenDKIM keys have been moved to the keys folder
This is to make it easier to integrate with Kubernetes to be able
to bind a `ConfigMap` to the said folder.
2019-02-19 11:42:16 +01:00
Bojan Čekrlić afccfdb3fc Fixed typo 2019-02-19 11:02:51 +01:00
Bojan Čekrlić 928e5d64c7 Initial support for DKIM and testing
This commit brings two important features:
- **DKIM support** It's now possible to configure this postfix
  image to sign messages using DKIM by simply generating the keys
  and providing them in the approprate folder. This should bring
  us one step closer to directly sending out emails without relying
  on a 3rd-party proxy.
- **test support** A nice and handy script, conviniently called
  `test.sh` has been provided, builds the image, spins it up and
  tries to send out an email. You'll need `docker-compose` to run
  it, though.
2019-02-19 10:49:55 +01:00
Bojan Čekrlić d7b6bdc32c Added the possibility to masquarade domains
This patch was "borrowed" from a fork of this project by RescueTime
and seemed like a good feature to include in the project.
2019-02-19 08:59:02 +01:00
Bojan Čekrlić aa66569ac1 Major update, better support for handling TLS connections.
This update includes a few features that make it easier to work
with relay hosts. The configuration now uses built-in (Alpine) TLS
certificates and allows the user to specify how the Postfix should
establish a TLS connection. Configure it using `RELAYHOST_TLS_LEVEL`,
if needed.

Another configuration option was added, `MESSAGE_SIZE_LIMIT`, which
enables you to reject messages exceeding certain limits. Especially
useful with relay servers, to prevent messages getting stuck in
Postfix queue.

Use the `INBOUND_DEBUGGING` parameter to enable additional postfix
logs for incoming messages when things go south.

Use `TZ` parameter to set the timezone of the container (especially
useful for logs and dates in the messages).

*Notice that `ALLOWED_SENDER_DOMAINS` is now a neccessary parameter.*
Turns out that due to Postfix anti-spam configuration there's no way
to start it properly without specifying the domains it will relay
email for.

This commit also includes a few samples of running the container:
- standalone
- in [docker-compose](https://docs.docker.com/compose/)

Further work: add a working Kubernetes / Helm chart example.
2019-01-02 14:06:00 +01:00
Florian Probst 9254d5ef36 added ca-certs and tls authentication (#9) 2019-01-02 09:50:52 +01:00
Bojan Čekrlić 397c0ce838 Swiched from alpine:edge to alpine:latest. Fixed some typos. 2018-11-13 12:05:58 +01:00
Boky cef2d06d3d
Update README.md 2018-11-13 11:56:18 +01:00
Boky fa4a3b8646
Update README.md 2018-11-13 11:55:27 +01:00
Boky 33a893d22a
Updated README.md 2018-11-13 11:54:38 +01:00
Boky e95e1a5a9c
Create CODE_OF_CONDUCT.md 2018-10-06 16:50:49 +02:00
Boky fc47db0529
Fixed a typo in readme 2018-10-06 16:48:00 +02:00
Bojan Čekrlić 707b8407e4 Additional fix when no domain given. 2018-07-31 15:04:00 +02:00
Bojan Čekrlić bd4b3ce754 Relax SMTPD accept and relay restrictions.
There are some use cases when using `reject_unverified_recipient`
(http://www.postfix.org/postconf.5.html#reject_unverified_recipient)
doesn't seem to be as good idea. This patch fixes this.

While in theory it seems good, in practice (for our use case) it's not:
- the service cannot send out emails as fast, as each "RCPT TO" will
result in a DNS lookup (and connection to the target server), which can
slow things down considerably.
- the target server might just be busy or temporarily offline. This will
prevent the service from sending out the email, which defeats the
purpose of mail bagging.
- we might be behind a firewall and not even be able to connect to the
target server for email validation

Furthermore, this patch include the following line:
`smtpd_relay_restrictions = permit`

This basically opens up relay functionality to any address. Previously
there was an issue if you wanted to send an email to the address which
was listed in the `$ALLOWED_SENDER_DOMAINS`.
2018-07-30 08:30:14 +02:00
Bojan Čekrlić 0638d349bd Minor edits for easier understanding.
The Dockerfile has been reformatted a bit to make it more clear and easy
to understand. README.md has been updated with the postfix's user
account details.
2018-07-27 16:42:35 +02:00
Bojan Čekrlić 50ad64dc4e Updated documentation, added info about project status. 2018-07-19 08:49:51 +02:00
Bojan Čekrlić 2797040faa NEW FEATURE: A new feature has been added -- it's now posible to specify a RELAY
hosts's username and password, if your remote host requires
authentication.

NEW FEATURE: The possibility to execute third party scripts. This should
make extending this image easier.

REFACTORING: Dockerfile now starts with run.sh instead of suprevisor.
This makes it much easier to see any errors that might creep into the
code. Also note that the script now relies on POSIX-compliant commands
only so the executor has been changed from /bin/bash to /bin/sh.
2017-11-02 14:20:28 +01:00
Bojan Čekrlić 387af8e285 Added a bit more documentation 2017-10-27 12:08:04 +02:00
Boky 246a4aa1fb Create LICENSE 2017-10-27 11:31:17 +02:00
Riaan Hanekom 9ef3f944af Fixed issue where relayhost was set instead of mynetworks. (#3) 2017-10-27 11:29:09 +02:00
Bojan Čekrlić 56e02ffd33 Fixed an issue with ALLOWED_SENDER_DOMAINS. Fixed an issue with pthread_setname_np: symbol not found. 2017-07-24 08:17:04 +02:00
Stefan S 3f4df6062a readme and MYNETWORKS via ENV (#1)
* mynetworks via ENV

* Create README.md

* <br>
2016-12-14 17:29:59 +01:00
Bojan Čekrlić d83c121323 Minor tweaks -- create alias file, disable SMTPUTF8 support, which is not possible anyways 2016-04-22 14:23:36 +02:00
Bojan Čekrlić f9f7935ae0 Fix for postfix; it now checks properly for allowed domains and sends off the email if the domain matches. 2016-04-22 14:16:12 +02:00
Bojan Čekrlić d2487b475b Postfix, initial release 2016-03-18 00:06:12 +01:00