Commit graph

165 commits

Author SHA1 Message Date
Felix Bartels 043e184630 Update readme
reorg dockerfile and add comments
2019-09-02 11:16:21 +02:00
Erik Wramner 3618939f21 Ignore hadolint error about parameter expansion 2019-08-30 13:51:48 +02:00
Erik Wramner b766b5646b Change repo for dovecot to fix CVE-2019-11500 2019-08-30 13:43:11 +02:00
Felix Bartels 1ba0991d80
Fix linting errors reported by hadolint (#1211)
* Fix linting errors reported by hadolint
* use full path for folders when listing contents
* add linting task to makefile
2019-08-13 11:41:38 +02:00
Felix Bartels a7408b73e0 Do not remove dh*.pem as they do not exist at this point in time
Signed-off-by: Felix Bartels <felix@host-consultants.de>
2019-08-12 19:31:24 +02:00
Erik Wramner 9d7873850d Move dovecot cert generation to startup 2019-08-10 10:15:35 +02:00
Erik Wramner fc8d684994 Generate dhparams at startup, not build 2019-08-09 22:13:50 +02:00
Martin Schulze fcce47a392 WIP: actually test PERMIT_DOCKER=connected-networks
also showcase timeouts and makefile integration
2019-08-07 02:24:56 +02:00
j-marz 2107793f7f install whois package for use with fail2ban action_mwl email notification 2019-08-01 21:37:02 +10:00
Erik Wramner f21bffe322 Fix 1198 freshclam (#1199)
* Run freshclam as clamav user not root

* Remove freshclam cron job when clamav is disabled
2019-07-29 11:15:49 +02:00
dimalo 70cbfa352b FIX: escape symbols in cron command (#1200) 2019-07-29 11:15:21 +02:00
j-marz c3e7ecc773 Replace ENV with ARG for DEBIAN_FRONTEND (#1180)
Best practice suggests not using ENV for this setting as it persists after build. ARG is only set during build.
2019-07-24 14:48:59 +02:00
Erik Wramner 603dbbd7b0 1175: specify user for cron.d freshclam file (#1176)
* 1175: specify user for cron.d freshclam file

* Fix Dovecot SSL parameters and generate dhparams as for Postfix

* Fixed broken unit tests
2019-07-23 16:12:12 +02:00
Daniel Panteleit cc56b4f89e Calling supervisord directly instead of via shell (Closes: #1047, #1074) 2018-11-04 20:23:50 +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
Cédric Laubacher 9b7cf1d25b Replace MAINTAINER with LABEL (#1042)
MAINTAINER is deprecated
2018-10-01 08:25:34 +02:00
Dingoz 6a69bb192c Fix freshclam cron name (#1019)
This fixes the daily mail error when logrotate tries to restart a non existing freshclam daemon because cron name doesn't fit freshclam init script invoked by logrotate
2018-08-15 08:27:07 +02:00
17Halbe cc7c1f8804 Introducing global filters. (#934)
* Introducing global filters
* added optional after.dovecot.sieve/before.dovecot.sieve files
* added global filter test
2018-04-05 18:54:01 +02:00
17Halbe e403261ba5 Fixes 'duplicate log entry for /var/log/mail/mail.log' (#925, #927) 2018-04-03 19:28:43 +02: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
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
Thomas A. Kilian 4036588c65 Setting quiet mode on invoke-rc.d (Closes: #792)
This prevents a daily error message
2018-03-07 19:31:10 +01:00
Cédric Laubacher 19cb22a1a5 Generate new DH param weekly instead of daily (#836) 2018-02-12 22:04:02 +01:00
17Halbe ac9be357ce Diffie-Hellman 2048 Bit Parameters should be changed regularly. (#834)
Since it is assumed that the NSA uses Rainbowtables to break default-DHE-Parameters, one is encouraged to change the Parameters periodically.
2018-02-11 18:37:04 +01:00
Jurek Barth e1e4542390 Fix: Add SRS to fix SPF issues on redirect #611 (#814)
* add srs support

* change autorestart behavior

* this may work now

* make postsrsd’s own wrapper file

* fix dockerfile formatting

* fixing tests
2018-02-06 08:11:57 +01:00
Marek Walczak b4b19e76b7 Stretch backport (#813)
* install dovecot from backports

* dovecot 2.2.33 has a slightly different TLS-configuration than 2.2.27

* want to have both images a the same time

* make use of the /etc/dovecot/ssl as mkcert.sh (2.2.33) is using that folder for certs.
2018-02-04 21:27:47 +01:00
Marek Walczak 49b3867c1b debian stretch slim (#784)
* Switch to stretch-slim as base image.
 - first step correct the testdata, as newer packages are more strict
about the mail-structure.

* Switch to stretch-slim: correcting the test-environment and the build
 - add missing build-step to make
 - clean the userdb aswell
 - use timeout of netcat, as postgrey would not close the connection
 - there is 2 extra mail-logs -> assert_output 5
 - cosmetic: use "" instead of ''

* Switch to stretch-slim:
new image:
 - smaller size
 - 0 CVEs compared to 11 CVEs in ubuntu 16.04 Image
better backport situation
 - postfix 3.1.6 vs 3.1.0
 - fail2ban 0.9.6 vs 0.9.3
 ...
changes needed because of stretch-slim:
- add missing gnupg and iproute2 package
- remove non-free rar, unrar-free should do
- rsyslog does not add syslog user and has different conf-structure
- pyzor command discover was deprecated and is missing in the new
stretch package

- dovecot does not know SSLv2 anymore. removed because of warnings in
log

- iptables does not know imap3, IMAP working group chose imap2 in favor
of imap3

* Switch to debian stretch slim:
SSLv2 seems to be a not known protocol anymore - good!

* switch to debian stretch slim:
make this test more stable. there might be more than only one mail.log
(mail.info, mail.warn, ...)

* switch to debian stretc slim:
 new openssl 1.1.0 needs stronger ciphers, removed some weekers ones.
Please, look through the new list of cipher! this needs to be done in
another commit for all other SSL/TLS-Endpoints aswell.

* Switch to debian stretch slim:
let our server pre-empt the cipher list.
Did a read through, wwwDOTpostfixDOTorg/FORWARD_SECRECY_READMEDOThtml
and
wwwDOTpostfixDOTorg/TLS_READMEDOThtml

* Switch to debian stretch slim: lets give this openssl-based test a new and independent but identical container.  many other test on the main 'mail' container might interfere here.

* Switch to debian stretch slim: remove unused lines
2017-12-31 12:33:48 +01:00
kamuri 835939d856 Issue 747 (#748)
* fix for issue #747 (NOT TESTED YET)

Need to test this. Dont merge it yet.

* Small Cleanup and bug fixes Not done Yet!

Not done yet. Dont merge. See comment in issue #747

* Add --ignore-missing. Now is fixed.
2017-10-18 07:43:30 +02: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
Darren McGrandle 5961b31e91 Enable user definable fetchmail poll times (#731)
* Enable user definable fetchmail poll times
* create new ENV variable FETCHMAIL_POLL in target/start-mailserver.sh
* change --daemon setting in supervisor-app.conf to use ENV var
* Put FETCHMAIL_POLL env variable in Dockerfile to handle case where
  user does not specify it in their docker-compose.yml
2017-10-04 22:10:18 +02:00
Johan Smits a2efdab5dd Merge pull request #719 from johansmitsnl/supervisor-sock (closes: #707)
fix(): Supervisor socket issue with overlay (closes: #707)
2017-09-17 08:58:46 +02:00
Daniel Panteleit dc6a5fd8e3 Prevent syslog logrotate warnings 2017-09-12 19:50:24 +02:00
Johan Smits ba62096550 fix(): Supervisor socket issue with overlay 2017-09-10 15:38:21 +02:00
Johan Smits 4cb8f4d4ae Improve the privacy of the client by removing sensitive details 2017-09-07 19:29:50 +02:00
Johan Smits 0fe86e796b Listen also on the ssl port 465 for clients (#709) 2017-09-07 18:08:25 +02:00
Johan Smits a2f6591212 Fix the hook that restarts the amavis server and causes it to (#699)
detach from supervisor.
2017-08-19 10:49:01 +02:00
Johan Smits 04904e77c4 Also search on the domain name for the virtual domain name in the ldap (Solves: #638) (#642)
Added test to check email delivery for a other domain then the primary
of the mailserver.
2017-08-19 10:32:00 +02:00
Johan Smits 9e7959fafe Issue 631 run services with supervisor (#676)
* installed supervisor. Still need to set tasks to run in foreground.

* setting programs to run in foreground

* seems to work now

* cleanup

* final fixes

* tests

* show startup output on stdout

* set Dovecot config files before starting it

* make all processes log to console

* Use the supervisor as the main process. The start-mailserver is started
from the supervisord and then this process triggers others.

Defined some default variable in the Dockerfile. In order for
supervisored to build the command lines the ENV variable need to be set.
Therefore the defaults are defined.

Some processes are not single processes like postfix and fail2ban and
they have a wrapper. The wrapper takes care of proper shutdown and checking
if the process is running or not. Supervisored will restart the wrapping
script if the process is gone.

Increased some delays between tests because sometimes they where to short
for all containers to be running.

* Remove obsolete comments, reset timeout value to old one, added new lines

* Add more time for analyzing the emails.

Sometimes it fails the tests and gives a wrong state about
the test. During testing 40 seconds was the safe value.
2017-08-07 17:39:40 +02:00
Johan Smits 8b19d54218 Expand the decoders for amavis (Resolves: #659) (#677)
Use the guidelines from Ubuntu and added some more.
Added a test to ensure the number of decoders are present.
Guideline: https://help.ubuntu.com/community/PostfixAmavisNew
2017-08-07 17:37:16 +02:00
Daniel Panteleit 60afbe1d16 Disable logrotate and cron job for updating clamav if clamav is disabled (fixes #660) (#667) 2017-07-23 21:31:41 +02:00
Daniel Panteleit 50dae03997 remove /etc/cron.weekly/fstrim since we don't want to fstrim in docker (#669) 2017-07-23 21:03:06 +02:00
Daniel Panteleit af8b1657ab Dockerfile cleanup (#665) 2017-07-23 19:38:34 +02:00
alinmear dbf65789f2 Integrate docker-configomat for configuration parts of start-mailserver.sh #648 (#650)
* Add submodule docker-configomat

* Add configomat.sh to Dockerfile

* Replaced override_config with configomat.sh
2017-07-10 00:11:00 +02:00
Arne Kepp c0530491c3 Add sieve pipe and filter (#574)
* First pass at adding support for pipe and filter in Sieve, excluding unit tests.
* Reduce insight into copied scripts
* Added test
* Adjustments related to switch to 16.04
2017-05-10 09:54:02 +02:00
Thomas A. Kilian 95d3375010 Upgrade to 16.04 (#571)
* Upgrade to ubuntu:16.04
2017-04-27 17:59:28 +02:00
Thomas VIAL 62f6fbbaae Fixes #496 enabling all domains to get spam headers and spam checks (#563)
* Fixes #496 enabling all domains to get spam headers and spam checks (integration tests included)
2017-04-18 14:18:42 +02:00
Eugene G fe8287f60a Fix battery drain for mobile clients (#554)
Regarding too frequent IDLE notifications mobile clients like k9mail have a massive battery drain.
More info:
https://github.com/k9mail/k-9/issues/1290
https://peterkieser.com/2011/03/25/androids-k-9-mail-battery-life-and-dovecots-push-imap/
2017-03-25 10:33:33 +01:00
Daniel S. Reichenbach 62c20295f9 Fixes #451 - add incoming mail SPF policy checks (#543) 2017-03-14 17:21:17 +01:00
Daniel Panteleit e7efeda036 Fixed virus-wiper script when using the default value for VIRUSMAILS_DELETE_DELAY (#540)
Moved variable VIRUSMAILS_DELETE_DELAY to Dockerfile. This variable will be written to /etc/environment in the start
script to make it visible to cron. Also removed echo in cron job to prevent sending mail for each run.
2017-03-14 15:22:19 +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
Kai Ren d40ae81d09 Hardening TLS ciphers (#492)
* Hardening Dovecot TLS ciphers
* Mitigate Logjam vulnerability on Dovecot
* Mitigate Logjam vulnerability on Postfix
* Add Nmap tests of PCI compliance for Postfix and Dovecot
* Increase sleep duration on Makefile steps to avoid races
2017-01-25 14:10:40 +01:00
Thomas VIAL 805506fbea Fixes #468: cron (virus wiper) (#469)
* Fixes #468: cron (virus wiper)
2017-01-11 10:52:39 +01:00
Thomas VIAL ae9eaae68e Empty /etc/aliases to avoid error in log regarding format (we use virtual aliases in this image). (#429)
Fixes #425
2016-12-25 15:56:35 +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
Thomas VIAL c7da5583b5
Fixing test 2016-12-17 22:04:59 +01:00
Thomas VIAL 5ce957efa1
Fixes #401 by running update-locale 2016-12-17 21:26:16 +01:00
Dennis Stumm d3cd407295 Improve LDAP integration (#379)
* Move ldap files to target dir

* Move ldap files to target dir

* Update start-mailser.sh to use copied files

* Add the domainname from container to vhost

* Fix unary operator error

* List dovecot users only when LDAP disabled

* Minor
2016-11-13 11:39:45 +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
Kai Ren 9111a92b18 improve OpenDKIM and OpenDMARC milters integration (#361) 2016-10-25 08:57:08 +02:00
Kai Ren a62062c382 make Postfix -> Dovecot delivery over LMTP (was LDA) (#305) (#360) 2016-10-24 15:03:08 +02: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
Pablo Castorino e4bab5b996 add ELK support (#331)
* add support to forward logs to ELK stack.
* from docker elk customize image with
* https://github.com/whyscream/postfix-grok-patterns
* custom imput
* override syslog filter.
* fix typo.
* Explicit forwarder vars and messages.
* add amavis grok
* add dovecot grok
* add geoip db
* add logstash geoip plugin
* add custom amavis grok from @tomav.
* switch to filebeats input
* refactor syslog filter
* add filebeat
* add template config
* replace rsyslog with filebeat.
2016-09-29 22:52:05 +02:00
Thomas VIAL c2eb975ace Fixes #329 (#330) 2016-09-23 08:22:57 +02:00
Kai Ren d9e1c0ad61 remove unnecessary spamd process (#312) 2016-09-06 13:06:25 +02:00
Josef Friedrich fce98eaecb Use COPY instead of ADD in Dockerfile (#301) (#304)
For other items (files, directories) that do not require ADD’s tar
auto-extraction capability, you should always use COPY.

  docker run --rm -i lukasmartinelli/hadolint < Dockerfile

shows:

  /dev/stdin:49 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:50 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:62 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:63 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:77 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:78 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:81 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:82 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:85 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:89 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:107 DL3020 Use COPY instead of ADD for files and folders
  /dev/stdin:109 DL3020 Use COPY instead of ADD for files and folders
2016-09-04 20:37:16 +02:00
Josef Friedrich 4e253a098d Simplify Dockerfile (#300)
The 'ADD' instruction can handle directories as source. It is no need
to add every script in 'target/bin' explicitly. New scripts can be
added without touching the Dockerfile.
2016-09-02 09:08:05 +02:00
Josef Friedrich afb8c05cf9 Refactor Dockerfile (#293)
Split long "oneliner" in multiple lines to increase readability. Sort
installed packages alphabetically. Replace tabs with to two spaces.
2016-08-30 09:59:46 +02:00
Josef Friedrich 6c9901e260 Improve fetchmail support (#289)
Fetchmail is now configured by a script called 'setup-fetchmail'.
The script 'debug-fetchmail' is used inside the 'setup.sh' script.
2016-08-29 19:03:45 +02:00
Josef Friedrich 98e59a7abe Implement ./setup.sh email list (#287)
This commit adds a script nammed 'listmailuser'. './setup.sh' uses this
this script for its subcommand './setup.sh email list'. A test have
been added too.
2016-08-29 13:44:36 +02:00
Josef Friedrich e7de8b9245 Implement fetchmail (#260) (#271)
To retrieve emails from external mail accounts.
2016-08-21 22:13:13 +02:00
shim_ 94679df291 move addmailuser, delmailuser to target/bin 2016-06-15 19:50:01 +02:00
shim_ b9aceb9d6f add relevant files 2016-06-14 13:38:34 +02:00
Thorsten von Eicken 70dd4d1519 support sending via AWS SES 2016-05-22 21:45:00 -07:00
Thomas VIAL fd98dd4f16 Merge pull request #168 from 00angus/v2_smallfix
Sieve filters can now be installed at user setup.
2016-04-29 18:38:18 +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
angus 25406949ee Sieve filters can now be installed at user setup.
Changed Dockerfile to include a missing configuration file for dovecot (mailboxes).
Moved Postfix setup after DKIM/DMARC/SSL setup, near the override postfix setup.
2016-04-29 00:41:48 +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 6faf5ce88b
Refactored Dockerfile to reduce layers and image size 2016-04-24 13:46:48 +02:00
Thomas VIAL 8d23df41fa
Kept @00angus filter file for dovecot 2016-04-23 20:20:25 +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 0322d890cd
Fixed i#152 Fail2ban config and tests 2016-04-22 17:51:14 +02:00
Thomas VIAL 0a0a0cab80
Changed Dockerfile to reduce image size on #109 2016-04-21 18:04:33 +02:00
Thomas VIAL b58d0d33d6 Fixing #143 2016-04-21 01:08:14 +02:00
Thomas VIAL 4f611eec1d Fixed #143 adding a OpenDKIM keys generator and its integration tests 2016-04-20 23:01:32 +02:00
Thomas VIAL 2b8bf1b80d Changed documentation for #109 2016-04-20 10:15:51 +02:00
Thomas VIAL c63af94788 Changed log location using Dockerfile #109 2016-04-18 23:38:52 +02:00
Thomas VIAL 180390107e Changed Fail2ban config for #109 2016-04-18 22:57:39 +02:00
Thomas VIAL 72d7207690 Fixing last tests on fail2ban regarding #102 and docker-mailserver v2 2016-04-17 22:59:35 +02:00
Thomas VIAL 2adc559a43 Fixed part of tests for #109 2016-04-15 21:02:41 +02:00
Thomas VIAL fc2e2ae591 Added folder target, simplified user configuration, few renames... Need to work on tests.... 2016-04-12 00:04:33 +02:00
angus ee0d0853dd Dovecot based version of the mailserver.
Courier and Cyrus Sasl have been removed and substituted with Dovecot which now
handle authentication for Postfix, Imap and Pop3, with support for SSL.
This allow the use of several encryption schemes for the password as well as a
single user db.
OpenDKIM keys can now be provided at the startup and will be used instead of
generating new ones (so that you don't have to change your DNS configuration).

This version builds correctly on Docker but no integration tests have been
reworked to accommodate Dovecot instead of Courier and Cyrus Sasl. As such
at present no automatic tests can be executed.
2016-04-07 14:42:07 +02:00
Dominik Winter 7e7c34a256 added fail2ban 2016-02-12 00:19:21 +01:00
Thomas VIAL 6cf6a5df5d Added test on default ssl certs and added letsencrypt X1 and X2 certificates 2016-02-08 23:47:42 +01:00
bilak 07ec823f45 - added DMARC (opendmarc) support with basic setup 2016-01-26 18:26:50 +01:00
Thomas VIAL 713fd8dc30 Merge branch 'pop3-support' of https://github.com/crash7/docker-mailserver into crash7-pop3-support 2016-01-26 12:56:26 +01:00
Christian Musa 9a80374bc3 Add pop3 support 2016-01-24 02:41:25 -03:00
bilak 5176ac03b5 - added DKIM support 2016-01-20 16:41:34 +01:00
Thomas VIAL f07a9ba852 Fix for #44 and #47, also enabling plain and login mechs. 2016-01-12 01:02:47 +01:00
Ian Andrews d5c6167dd3 Added SMTP and IMAP ports 2016-01-08 11:52:06 -05:00