Commit graph

214 commits

Author SHA1 Message Date
Erik Wramner e4f8bac6d1 Added FAQ for bare domains #968 2020-01-18 11:42:23 +01:00
Christian P. Glahn 739043d501 fixed a typo in the bayes shortcircuit docu 2020-01-14 22:08:17 +01:00
Christian Glahn b8726b80a4 activate SA shortcircuit features via env, fixes #1118 2020-01-13 14:22:14 +01:00
Erik Wramner d847be2d5a
Merge pull request #1331 from Tecnativa/srs-sender-classes
Allow to configure SRS sender classes easily
2019-12-06 07:22:46 +01:00
Jairo Llopis ce8c1734e6
Document plus addressing and DEFAULT_RELAY_HOST format
These are a couple of things that work but got me losing lots of hours. Let me add them to README:

1. Fix #1330 explaining that plus addressing works out of the box.
2. Explain that DEFAULT_RELAY_HOST will fail to authenticate with RELAY_USER and RELAY_PASSWORD if you forgot the brackets.

@Tecnativa TT20505
2019-12-03 13:52:26 +00:00
Jairo Llopis 42348ff353
Allow to configure SRS sender classes easily
This will allow to forward safely any email from any host, no matter how strict their SPF policy is, by setting `SRS_SENDER_CLASSES=envelope_sender,header_sender`.

@Tecnativa TT20505
2019-12-03 13:33:51 +00:00
Germain Masse 36afac7726 New option DOVECOT_MAILBOX_FORMAT 2019-11-04 15:49:29 +00:00
Daniel Karski 0b9bbc79b8
Update README.md
link FAQ
2019-11-02 06:46:35 +01:00
Erik Wramner c6b19bd80a Updated system requirements, see #1224 2019-10-28 13:55:18 +01:00
Artur Mustafin f50cf3ecb4
Update README.md
added command for required file to run docker-compose  up -d mail
2019-10-17 18:53:32 +03:00
Arash Fatahzade 96268bb45b
Removed a dot from .env-mailserver 2019-09-29 21:47:09 +03:30
Lukas Elsner 1fce099ade Separate environments and simplify docker-compose.yml 2019-09-20 13:38:13 -06:00
Lukas Elsner e60e2d180e Separate environments and simplify docker-compose.yml 2019-09-20 10:40:37 -06:00
Erik Wramner 2584124ccd Updated readme after code review 2019-09-16 08:05:18 +02:00
Erik Wramner 008b8e6bce Fix #1093, pflogsumm and logwatch 2019-09-16 08:00:35 +02:00
Felix Bartels 043e184630 Update readme
reorg dockerfile and add comments
2019-09-02 11:16:21 +02:00
Erik Wramner 0a9bd1c09d Corrected docs for dovecot attrs #1234 2019-08-21 12:53:53 +02:00
James Fryer f6ad68d5c9 Improved documentation for SA_KILL 2019-08-21 11:25:10 +01:00
James Fryer 29db9a8f2b Improved documentation for SA_KILL 2019-08-20 13:01:51 +01:00
Martin Schulze 234632913e Add PERMIT_DOCKER=connected-networks 2019-08-02 15:05:00 +02:00
Michael Schmoock ba06cf5bf4 Adds docker image update to restart section in README (#1178) 2019-07-24 14:06:31 +02:00
0xflotus adf3d8e1b3 fixed privileges (#1166) 2019-05-14 21:40:02 +02:00
Michael G c4b2f6b7e6 Update indentation in README (#1162) 2019-05-05 20:22:51 +02:00
Johan Smits 7dbc96e908
Improve ldap queries to support email forwarding to a other mailserver 2019-02-02 11:02:31 +01:00
jose nazario 265d770e47 Spelling fixes (Closes: #1113) 2019-01-22 14:00:53 +01:00
Scott Weldon 7f7dd9b746 Set minimum docker-compose version to 1.7 (Closes: #1106)
Bump docker compose version to 1.7
2019-01-20 11:16:19 +01:00
Christian Glahn 8517a4d025 Document missing DOVECOT_* environment variables (Closes: #1099, #1112)
* Document missing DOVECOT_* environment variables, fixes #1099
* remove misleading quotes
2019-01-20 11:15:26 +01:00
jjtt a3724fa91d Support for setting relayhost in main.cf (#1104)
* Added DEFAULT_RELAY_HOST setting
* If set this value will be used as the relayhost in /etc/postfix/maincf causing all mail to be delivered using this relay host
* Test for default relay host setting
2019-01-19 11:10:31 +01:00
Andrey Likhodievskiy a989d77a87 Disable ssl when no certificate is set (Closes: #1083, #1085)
* Modified start-mailserver.sh with two new options for SSL certificate Configuration ():
+ ‘’ (empty string) modifies dovecot configs to allow plain text access
+ * (default) does nothing but warn with message ‘SSL configured by default’

* Updated README.md:
SSL_TYPE environment variable with unknown value will set SSL by default
2018-12-02 12:59:16 +01:00
Daniel Panteleit 0fb4a6d082 Clear up env format and hostname value (#1076)
* Describe format for .env in README
* Display used domain and hostname even when they are not acceptable
This should be clearer for the user when the hostname was set incorrectly.
2018-11-11 20:46:53 +01:00
mpanneck 216def8490 add LDAP_QUERY_FILTER_DOMAIN env to documentation (#1070)
* added LDAP_QUERY_FILTER_DOMAIN env
* updated docs for LDAP_QUERY_FILTER_DOMAIN env

additionally removed unnecessary quotation marks in example ldap.yml
2018-11-03 21:52:17 +01:00
millerjason 53a344a056 Support for additional postgrey options (Close: #998, #999, #1046)
* addnl postgrey whitelist support. closes #998, closes #999.

	modified:   Dockerfile
	modified:   Makefile
	modified:   README.md
	modified:   docker-compose.elk.yml.dist
	modified:   docker-compose.yml.dist
	modified:   target/start-mailserver.sh
	modified:   target/supervisor/conf.d/supervisor-app.conf
	new file:   test/config/whitelist_recipients
	new file:   test/nc_templates/postgrey_whitelist_local.txt
	new file:   test/nc_templates/postgrey_whitelist_recipients.txt
	modified:   test/tests.bats

* match existing indent convention

	modified:   target/start-mailserver.sh

* ISSUE-999: add support for header_checks

	modified:   Dockerfile
	modified:   target/postfix/main.cf

* ISSUE-999: add empty header_check file

	new file:   target/postfix/header_checks.pcre
2018-11-01 19:32:36 +01:00
olaf-mandel 8c8426ef4a postfix: fix message size limits (#1061)
The message size limit was reduced in c8728eab from the postfix
default [1] of 10,240,000B = 10,000kiB = ~10MiB to only
1,048,576B = 1MiB. And the documentation claims that this would be 10MiB
instead of 1MiB.

Restore the old behaviour as default and fix the documentation as well.

[1]: http://www.postfix.org/postconf.5.html
2018-10-20 20:10:30 +02:00
Jiří Kozlovský c8728eab8a feat: added postfix message & mailbox size limits to ENV settings (Closes: #629, #1056) 2018-10-15 21:17:45 +02:00
Birkenstab 8f48d0536f Fix Readme usage: Start container before running setup.sh (#1054) 2018-10-14 21:41:52 +02:00
James d518a9fc1d DOMAINNAME can fail to be set in postsrsd-wrapper.sh (#989)
* DOMAINNAME can fail to be set in postsrsd-wrapper.sh

if the container doesn’t have a proper hostname, postsrsd will fail to start
because SRS_DOMAIN is empty. Make a best effort to figure out the domain name
and provide a way to set one if needed.
2018-06-19 08:17:32 +02:00
ixeft 60656aec49 Report sender (#965)
* added REPORT_SENDER env variable to the container.
* integration test for REPORT_SENDER
* added tests for default REPORT_SENDER
2018-05-01 19:57:31 +02:00
Pierre-Yves Rofes 137d623171 Ensure that the account contains a @ (#923, #924)
* Ensure that the provided username actually contains a domain
* Update README.md to be consistent with addmailuser script
* Add a test to check if the username includes the domain
2018-04-04 18:59:28 +02:00
Paul Adams f28e9843ce Implementation of multi-domain relay hosts (#922, #926)
* Add new configuration for multi-domain relay hosts (#922)
 * Creates new environment variables (replacing existing AWS_SES variables)
 * Optionally allows more advanced setups using config files
* Update relay hosts during change detection (#922)
* Add helper scripts for adding relay hosts and per-domain auth
* Allow the possibility to deliver some mail directly
* adding a domain with no destination will exclude it from the
  relayhost_map and so Postfix will attempt to deliver the mail directly
* tests for setup.sh script
* tests for relay host configuration
* these tests cover the code in `start-mailserver.sh` dealing with both
  the env vars and the configuration files
2018-04-02 10:45:58 +02:00
17Halbe 2167108ec0 introducing ENABLE_SRS env variable (Closes: #906, #852)
* making postsrsd optional
* added tests, added documentation
2018-03-18 20:15:06 +01:00
akmet a420b15370 Adding daily mail review from Issue 839 (#881)
* Added dependencies, binary, startup configuration
* Added env variable to dist files/readme
* send summary after each logrotate, added env variable for mail/logrotate interval
* remove mail.log from rsyslogs logrotate
* rotate mail.log when no email is set
* Added documentation for POSTFIX_LOGROTATE_INTERVAL
* Removed interval option, since its not being tested for.
* changed test to force logrotate to rotate fixed logrotate config
* readded setup_environment, made logrotate_setup being called everytime
* changed documentation for new variable names - again
* Did Documentation, added a default recipient, added test for default config.
* layout fix
* changed variable names apposite the documentation
2018-03-18 19:52:28 +01:00
James ef79e9a65d Generate SRS secret on first run and store it (#891) 2018-03-10 13:41:20 +01:00
James 2e8bb4ae34 Allow configuring SRS secrets using the environment (#885) 2018-03-08 22:51:10 +01:00
Cédric Laubacher d691b8df6f Fix typo in README (#883) 2018-03-07 22:14:52 +01:00
17Halbe a73692cc9f Added reject_authenticated_sender_login_mismatch (#872)
* added reject_authenticated_sender_login_mismatch handling including tests
* removed obsolete reject_sender_login_mismatch
* introduced SPOOF_PROTECTION env variable, tests, documentation and missing documentation for TLS_LEVEL
* added missing email template
2018-03-07 19:33:43 +01:00
Marek Walczak c36e878d76 Nist tls (#831)
* remove two ciphers according to https://www.htbridge.com/ssl/ (NIST, HIPAA)
* added a switch via an environment variable to choose between modern and intermediate ciphers
2018-02-22 08:36:12 +01:00
Achim Christ eb20722b80 Add environment variable to allow for customizing postsrsd's SRS_EXCLUDE_DOMAINS setting (#849, #842) 2018-02-18 20:53:13 +01:00
Johan Smits 803dab12c6
Update readme and changelog about the ports and usage (#848) 2018-02-18 13:12:39 +01:00
17Halbe 115ad555be Introduce .env for docker-compose examples (Closes #815)
Introduce .env for docker-compose examples
2018-02-07 19:37:26 +01:00
17Halbe 3b7fc5930c Introducing Postscreen (#799)
* Introduced Postscreen

cheaper, earlier and simpler blocking of zombies/spambots.
From http://postfix.cs.utah.edu/POSTSCREEN_README.html :
As a first layer, postscreen(8) blocks connections from zombies and other spambots that are responsible for about 90% of all spam. It is implemented as a single process to make this defense as cheap as possible.

Things we need to consider:

 - Do we need a whitelist/backlist file? (http://postfix.cs.utah.edu/postconf.5.html#postscreen_access_list)
   - Via introducing an optional config/postfix-access.cidr
   - The only permanent whitelisting I could imagine are monitoring services(which might (still?) behave weird/hastely) or blacklisting backup servers(since no traffic should be coming from them anyway)
 - Do we need deep inspections? They are desireable, but these tests are expensive: a good client must disconnect after it passes the test, before it can talk to a real Postfix SMTP server. Considered tests are:
   - postscreen_bare_newline_enable (http://postfix.cs.utah.edu/postconf.5.html#postscreen_bare_newline_action)
   - postscreen_non_smtp_command_enable (http://postfix.cs.utah.edu/postconf.5.html#postscreen_non_smtp_command_action)
   - postscreen_pipelining_enable (http://postfix.cs.utah.edu/postconf.5.html#postscreen_pipelining_action)
- Do we need to make the blacklisting via dnsblocking configurable? It's currently set and weighted as follows, where a score of 3 results in blocking, a score of -1 results in whitelisting:
   (*: adds the specified weight to the SMTP client's DNSBL score. Specify a negative number for whitelisting.)
   (http://postfix.cs.utah.edu/postconf.5.html#postscreen_dnsbl_sites)
   - zen.spamhaus.org*3
   - bl.mailspike.net
   - b.barracudacentral.org*2
   - bl.spameatingmonkey.net
   - bl.spamcop.net
   - dnsbl.sorbs.net
   - psbl.surriel.com
   - list.dnswl.org=127.0.[0..255].0*-2
   - list.dnswl.org=127.0.[0..255].1*-3
   - list.dnswl.org=127.0.[0..255].[2..3]*-4
- What to do when blacklisting? I currently set it to drop. We could
   - ignore: Ignore the failure of this test. Allow other tests to complete. Repeat this test the next time the client connects. This option is useful for testing and collecting statistics without blocking mail.
   - enforce: Allow other tests to complete. Reject attempts to deliver mail with a 550 SMTP reply, and log the helo/sender/recipient information. Repeat this test the next time the client connects.
   - drop: Drop the connection immediately with a 521 SMTP reply. Repeat this test the next time the client connects.

In the end I think we could drop postgrey support. Postscreen replaces postgrey in its entirety, while being more selective and not delaying mail. Especially if we consider using the deep inspection options of postscreen.

Hope that wasn't too much to read! ;)

* main.cf got misformatted..
Don't know how, should be ok now.

* fixed malformatted main.cf & repaired master.cf

* reenabled rbl stuff.. It's cached, therefore doesn't hurt

* fixed tests

* added tests, repaired tests, added info, introduced new Variable POSTSCREEN_ACTION, fixes
2018-02-04 21:31:08 +01:00
Mathieu Brunot d270fcdd40 Added support for Dovecot and Postfix LDAP TLS (#800)
* Allow setup of LDAP STARTTLS for Dovecot and Postfix

* Added tests for TLS config override

* Add missing Postfix TLS options

* Added missing new line at the end of the file

* Added STARTTLS tests for Postfix config
2018-01-25 22:38:41 +01:00
Sylvain Benner 0748734b19 Add requirements to README (#789) 2018-01-09 08:31:15 +01:00
kamuri 420e7741a1 Check for account changes and reload (Closes: #552)
Restart the daemons when changes are made to 'postfix-account.cf' and/or 'postfix-virtual.cf'
2017-10-10 08:15:18 +02:00
Johan Smits fe9361524c Update readme according to pr #731 2017-10-05 08:25:29 +02:00
Hannu Shemeikka 984537526a New command: generate-dkim-domain
This command can be used for generating DKIM key for a domain,
which is not included in any configuration files. For example,
when using SQL database for transport maps.
2017-09-09 23:35:26 +03:00
Johan Smits c9e5a92db3 Add docker size label of the latest version to the README (#675)
* Add docker size label of the latest version to the README

* Update the alt text

* Changed the label as suggested by @tomav
2017-07-30 20:07:32 +02:00
alinmear 21fb3f3c86 Fix ldap related critical Problems (#644)
* Fix Dovecot Ldap Problems
* Fix typo within DEFAULT_VARS Definitions
* Fix wrong ldap hosts value within the bats test
* Fix override_config for strings containing &
* Fix erroneous removal of an conditional within the postfix override function
* Renamed Test 129, to be clear that this belongs to ldap
* Fix mail_with_ldap setting dn pass explicit
* Add 3 env variables for ldap: LDAP_QUERY_FILTER_{USER,GROUP,ALIAS}
* Update README.md
2017-07-03 13:16:15 +02:00
Alexander Elbracht 5a86193dbf Environment variable for amavis subject tag (#596)
* Environment variable for spam subject tag
* Add SA_SPAM_SUBJECT to readme
* Add integration tests for spam subject tag
* Fix overwrite environment variable in config file
2017-06-23 21:50:01 +02:00
Thomas VIAL feff849d62 Changed README to :latest tag 2017-04-27 18:01:26 +02:00
Thomas VIAL c03aa58ff6 Fixes #527
Added comment suggested by @JonasT
2017-03-20 22:48:25 +01:00
strarsis 393f47d085 Add restart: always (#550)
* Update docker-compose.yml.dist
* Update docker-compose.elk.yml.dist
* Update README.md
2017-03-16 16:45:47 +01:00
Thomas VIAL 3d553961d3 Added Gitter badge 2017-02-23 11:48:52 +01:00
Sven Kauber c7e4206466 Added greylisting using postgrey (#495)
* Added greylisting using postgrey
* Updated the documentation
2017-02-06 10:21:18 +01:00
Thomas VIAL fed48e646d Fixes #488 - Typo in README 2017-01-21 17:27:21 +01:00
Kevin Crawley 16c90fc52a kubernetes fix (#484)
* Allow OVERRIDE_HOSTNAME
* Document the new environment variable
2017-01-20 23:30:29 +01:00
alinmear a7670ac5c1 Add #394: Postfix Virtual Transport (#461)
* Add #394: Postfix Virtual Transport
This makes it possible to specify a lmtp config file, by providing
POSTFIX_DAGENT.

Update - Readme with informations about #394

    * Add Variable ENABLE_POSTFIX_VIRTUAL_TRANSPORT (task)
    * Add Variable POSTFIX_DAGENT (section)

Added Unit tests for virtual transport

* Fix syntax error in test/tests.bats

* Fix Unit Test
2017-01-09 23:52:36 +01:00
Thomas VIAL d4cee677ce ONE_DIR documentation (#460)
* Fixes #457 adding information regarding `ONE_DIR` env variable
2017-01-09 17:11:10 +01:00
Bogdan 9cebc50307 #445: mention the setup.sh convenience script (#453) 2017-01-04 10:09:03 +01:00
Thomas VIAL cfd7fde1ea Added config information
Added information regarding were config files must be mounted.
2017-01-04 10:05:02 +01:00
Thomas VIAL 03a0c92e6f Fixed docker version from "v2.1" to "2.1" 2016-12-25 23:10:06 +01:00
Thomas VIAL df752280e0 BREAKING CHANGES: (#432)
* Removed DISABLE_AMAVIS
* Renamed DISABLE_* to ENABLE_* with 0 as default value. (this must be explicit)
* Added missing tests for ENABLE_*
* Improved readme and docker-compose example

Should fix #256 and #386
2016-12-25 22:54:37 +01:00
Thomas VIAL ccad91c23d Improved start-mailserver output (#420)
* Improved start-mailserver output
* Fixed rework to make tests work again
* Improved output and updated SSL certs for LE
2016-12-23 23:56:39 +01:00
Dennis Stumm 3ec1fb202d Add ldap auth for postfix and dovecot (#352)
* Add ldap support for postfix and dovecot

* Add SASLAUTHD

* Update README.md

* Add necessary packages to dockerfile

* Add config files for ldap

* Add tests for ldap auth
2016-10-30 14:11:36 +01:00
Thomas VIAL 08dc28e304 Fixes #346 and added a virusmail wiper triggered by a CRON (#347)
* Fixes #346 and added a virusmail wiper triggered by a CRON

* Renamed env to something more explicit VIRUSMAILS_DELETE_DELAY
2016-10-08 19:02:47 +02:00
Josef Friedrich cc2043ba88 Add syntax highlighting for YAML code snippets. (#314)
Fenced code blocks support YAML syntax highlighting.
2016-09-07 19:39:27 +02:00
Morgan Kesler ee0c4244cc Add the option of manually specifying paths to SSL certificates (#296)
* Add the option of manually specifying paths to SSL certificates

* Adding tests for manual SSL changes
2016-08-31 15:15:39 +02:00
Josef Friedrich f707a11c98 Add notice to docker-compose version in README (#268 #276) (#277) 2016-08-23 11:51:05 +02:00
Josef Friedrich e7de8b9245 Implement fetchmail (#260) (#271)
To retrieve emails from external mail accounts.
2016-08-21 22:13:13 +02:00
Zehir 8b289f6717 Adding the PERMIT_DOCKER option (#270)
* Adding the PERMIT_DOCKER option

See README.md for more informations

* Adding some test for PERMIT_DOCKER option

* Fix test cases

* Opendkim and Openmarc configuration

Fix docker network range
Adding opendkim and openmarc configuration

* Adding some options for tests

* Update log message

* Update tests
2016-08-21 22:10:13 +02:00
Jack Twilley 0e8934c151 Minor corrections to README.md (#264)
One example was missing a useful line, which was present in the wiki's example and without which the example does not run.

A typographical error was found in a file.
2016-08-18 09:54:17 +02:00
Thomas VIAL 4964e4dce6
Added shields 2016-08-02 14:24:02 +02:00
Thomas VIAL 4c5e757fec
Added Docker Pull image 2016-06-25 10:57:46 +02:00
shim_ 63fd58a7cb switch to SHA512 2016-06-14 13:00:51 +02:00
Josef Friedrich 9dc6ef9733 Fix link to start-mailserver.sh 2016-05-10 07:32:45 +02:00
Thomas VIAL 05f63f54be
Fixed badged URL to master 2016-05-09 09:28:56 +02:00
Thomas VIAL 975d4fa78f
Release V2 as MASTER (and LATEST image) 2016-05-08 20:10:38 +02:00
Thomas VIAL 98b5717f5c
Release V2 as MASTER 2016-05-08 20:08:24 +02:00
Chris54721 d746c9254e Update README.md 2016-05-08 19:02:32 +02:00
Tobias Rittig 43643b5cea #Fix docker-compose.yml proposal
./opendkim/ local folder shadows ./config/opendkim
on generation of the keyfiles all files get written to ./config/opendkim leaving ./opendkim empty
thus on startup no config for opendkim is loaded
2016-05-01 15:23:34 +02:00
André Stein 94a97ac150 Update README.md with new link to "Configure Sieve filter" wiki page 2016-04-29 17:52:22 +02:00
André Stein 9f63fa2ef4 Rename environment variable ENABLE_MANAGE_SIEVE to ENABLE_MANAGESIEVE. 2016-04-29 17:09:48 +02:00
André Stein 69b66d55bc Configure dovecot's managesieve plugin when the environment variable
ENABLE_MANAGE_SIEVE has been set.

Adapted README and updated tests.

The functionality has successfully been tested using the Sieve
Thunderbird plugin.
2016-04-29 15:24:10 +02:00
André Stein 2cfb3c9977 Update README.md with link to sieve configuration in Wiki 2016-04-28 10:26:05 +02:00
André Stein 2f9f6b1002 Implement basic sieve support using Dovecot.
The dovecot-sieve plugin is installed and configured to apply sieve
as soon as a .dovecot.sieve file is encountered in the virtual user's
home directory (that is /var/mail/${domain}/${username}/.dovecot.sieve).

Transport has been changed in the postfix configuration to use
Dovecot LDA (see http://wiki.dovecot.org/LDA/Postfix) to actually
enable sieve filtering.

Tests have been added.
2016-04-28 08:57:50 +02:00
Thomas VIAL f8268f641a
Fixed link to script 2016-04-24 18:12:36 +02:00
Thomas VIAL 9e1c4783a8
Refactored documentation and Wiki
Moved docker-compose.yml.dist to version 2 with data volume container
Renamed DMS_SSL to SSL_TYPE
Refactored start-mailserver to avoid DKIM errors
2016-04-24 17:37:10 +02:00
Thomas VIAL b9e1903083
- Fixed #152
- Moved Fail2ban to 0.9.x because OS version was buggy
- Improved documentation
- Reduce image size
2016-04-23 12:09:28 +02:00
Thomas VIAL 2f1be46c91
Fixed typo 2016-04-23 09:27:47 +02:00
Thomas VIAL 81bd1f5212
Fixed formatting 2016-04-23 00:35:40 +02:00
Thomas VIAL b78ae12cf0
Fixed typo 2016-04-23 00:34:03 +02:00