From 7acd914ebd588448e2a5e4c294debb76db535bb1 Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Fri, 21 May 2021 20:09:04 +0100
Subject: [PATCH 01/61] rename, prettify, add link to cyrus quota script
---
ADDITIONS/{README.TXT => README.md} | 45 ++++++++++++++++++++---------
1 file changed, 31 insertions(+), 14 deletions(-)
rename ADDITIONS/{README.TXT => README.md} (72%)
diff --git a/ADDITIONS/README.TXT b/ADDITIONS/README.md
similarity index 72%
rename from ADDITIONS/README.TXT
rename to ADDITIONS/README.md
index eecb1c64..6e0238ab 100644
--- a/ADDITIONS/README.TXT
+++ b/ADDITIONS/README.md
@@ -1,52 +1,69 @@
-#
-# Postfix Admin ADDITIONS
-#
-BEFORE YOU START
-----------------
+# BEFORE YOU START
+
**** ALL THESE SCRIPTS ARE CREATED BY THIRD PARTIES ****
**** THEY ARE AS IS, USE AT YOUR OWN RISK! ****
-ADDITIONS
----------
+# ADDITIONS
In this directory you will find additional scripts that are build by others.
-- change_password.tgz
+## change_password.tgz
+
by George Vieira
SquirrelMail plugin to change your passwor
-- cleanupdirs.pl
+## cleanupdirs.pl
+
by jared bell
Displays a list of mailboxes that need to be deleted
-- mailbox_remover.pl
+## mailbox_remover.pl
+
by Petr Znojemsky
Deletes all unused mailboxes
-- mkeveryone.pl
+## mkeveryone.pl
+
by Joshua Preston
Generate an 'everybody' alias for a domain.
-- pfa_maildir_cleanup.pl
+## pfa_maildir_cleanup.pl
by Stephen Fulton
Deletes all unused mailboxes
-- postfixadmin-0.3-1.4.tar.gz
+## postfixadmin-0.3-1.4.tar.gz
+
by Florian Kimmerl
+
The Postfixadmin SquirrelMail plugin let users change their virtual alias,
vacation status/message and password.
-- virtualmaildel.php
+See also : https://github.com/postfixadmin/postfixadmin/tree/master/ADDITIONS/squirrelmail-plugin
+
+
+## virtualmaildel.php
+
by George Vieira
Deletes all unused mailboxes
+## Example mailbox / domain scripts for Postfixadmin
+
- postfixadmin-mailbox-postcreation.sh
- postfixadmin-mailbox-postdeletion.sh
- postfixadmin-domain-postdeletion.sh
by Troels Arvin
+
Examples of scripts relevant to the optional
+
+
$CONF['mailbox_postcreation_script'],
$CONF['mailbox_postdeletion_script'] and
$CONF['domain_postdeletion_script'] configuration options.
+
+
+## Cyrus Quota Usage
+
+See https://github.com/o-m-d/cyrus-quotausage-to-pfa
+
From 58e23f141ce4d6e3ffa4a578ddcedb77a5894d1b Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Tue, 25 May 2021 21:35:41 +0100
Subject: [PATCH 02/61] token updates to INSTALL.txt - more consistent file
paths, add $CONF[encrypt] setting to the config.local.php snippet shown
---
INSTALL.TXT | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/INSTALL.TXT b/INSTALL.TXT
index ca10092d..c726a6f4 100644
--- a/INSTALL.TXT
+++ b/INSTALL.TXT
@@ -106,10 +106,11 @@ Create /srv/postfixadmin/config.local.php file for your local configuration:
@@ -118,7 +119,7 @@ See config.inc.php for all available config options and their default value.
You can also edit config.inc.php instead of creating a config.local.php,
but this will make updates harder and is therefore not recommended.
-The most important settings are those for your database server.
+The most important settings are those for your database server, and the hashing mechanism to be used to store passwords in your database.
You must also change the line that says :
@@ -143,7 +144,7 @@ The easiest way to do this is
(If you're using e.g. CentOS or another distribution which enables SELinux, something like the following may be necessary as well :
```bash
- chcon -R -t httpd_sys_content_rw_t /usr/share/postfixadmin/templates_c
+ chcon -R -t httpd_sys_content_rw_t /srv/postfixadmin/templates_c
```
)
@@ -168,16 +169,14 @@ You need to specify that same password in the setup.php page, and click 'Login w
You should then see a list of 'OK' messages.
-The setup.php script will attempt to create the database structure
-(or upgrade it if you're coming from a previous version).
+The setup.php script will attempt to create the database structure (or upgrade it if you're coming from a previous version).
You can then create an Superadmin user (or add another), using the form displayed (you'll need to re-enter the your setup password).
6. Use PostfixAdmin
-------------------
-This is all that is needed. Fire up your browser and go to the site that you
-specified to host Postfix Admin.
+This is all that is needed. Fire up your browser and go to the site that you specified to host Postfix Admin. Login with the Superadmin user you've just created.
7. Integration with Postfix, Dovecot etc.
-----------------------------------------
From 9d08185ec0836899d523045897409855c1bd1896 Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Thu, 27 May 2021 19:49:20 +0100
Subject: [PATCH 03/61] try and improve docs around SELinux (Fedora/CentOS
etc), thanks to Cru on IRC #postfixadmin
---
INSTALL.TXT | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/INSTALL.TXT b/INSTALL.TXT
index c726a6f4..6dd60f59 100644
--- a/INSTALL.TXT
+++ b/INSTALL.TXT
@@ -141,12 +141,34 @@ The easiest way to do this is
$ mkdir -p /srv/postfixadmin/templates_c
$ chown -R www-data /srv/postfixadmin/templates_c
-(If you're using e.g. CentOS or another distribution which enables SELinux, something like the following may be necessary as well :
+
+4a. SELinux (CentOS/Fedora etc)
+-------------------------------
+
+If you're using e.g. CentOS (or another distribution) which enables SELinux, something like the following will be necessary :
+
```bash
- chcon -R -t httpd_sys_content_rw_t /srv/postfixadmin/templates_c
+ semanage fcontext -a -t httpd_sys_content_t "/srv/postfixadmin(/.*)?"
+ semanage fcontext -a -t httpd_sys_rw_content_t "/srv/postfixadmin/templates_c(.*)?"
+ restorecon -R /srv/postfixadmin
```
-)
+
+(Allow the webserver to read /srv/postfixadmin/* and write to /srv/postfixadmin/templates_c/*)
+
+
+And if the webserver (PHP) needs to make network connections out to a database server, you'll probably need this :
+
+```bash
+ semanage boolean -m --on httpd_can_network_connect_db
+````
+
+If additionally need the webserve (PHP) to talk to an imap server, then you'll probably also need :
+
+```bash
+ semanage boolean -m --on httpd_can_network_connect
+````
+
5. Check settings, and create Admin user
----------------------------------------
From 50ba4a3cbf796c8960c0718fddca807fa6601c0d Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Thu, 27 May 2021 21:20:11 +0100
Subject: [PATCH 04/61] typo fix (Thanks Cru)
---
INSTALL.TXT | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/INSTALL.TXT b/INSTALL.TXT
index 6dd60f59..8e93cb52 100644
--- a/INSTALL.TXT
+++ b/INSTALL.TXT
@@ -150,7 +150,7 @@ If you're using e.g. CentOS (or another distribution) which enables SELinux, som
```bash
semanage fcontext -a -t httpd_sys_content_t "/srv/postfixadmin(/.*)?"
- semanage fcontext -a -t httpd_sys_rw_content_t "/srv/postfixadmin/templates_c(.*)?"
+ semanage fcontext -a -t httpd_sys_rw_content_t "/srv/postfixadmin/templates_c(/.*)?"
restorecon -R /srv/postfixadmin
```
From e20defeed5d0ec9eab1cdfeb2c5a2d0642a6f176 Mon Sep 17 00:00:00 2001
From: Valery Kartel
Date: Wed, 2 Jun 2021 12:59:12 +0300
Subject: [PATCH 05/61] smtp_ssl variable must be boolean not literal
---
VIRTUAL_VACATION/vacation.pl | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/VIRTUAL_VACATION/vacation.pl b/VIRTUAL_VACATION/vacation.pl
index 824aa79d..f8424056 100644
--- a/VIRTUAL_VACATION/vacation.pl
+++ b/VIRTUAL_VACATION/vacation.pl
@@ -66,8 +66,8 @@ our $smtp_client = 'localhost';
our $smtp_helo = 'localhost.localdomain';
# send mail encrypted or plaintext
-# if 'starttls', use STARTTLS; if 'ssl' (or 1), connect securely; otherwise, no security
-our $smtp_ssl = 'starttls';
+# if 1, connect securely via ssl; otherwise, no security
+our $smtp_ssl = 0;
# maximum time in secs to wait for server; default is 120
our $smtp_timeout = '120';
From b075544c660119e3f0d754197ad758450e364a5c Mon Sep 17 00:00:00 2001
From: Valery Kartel
Date: Wed, 2 Jun 2021 13:13:00 +0300
Subject: [PATCH 06/61] Update AdminpasswordHandler.php
---
model/AdminpasswordHandler.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/model/AdminpasswordHandler.php b/model/AdminpasswordHandler.php
index 5022830b..7aa50381 100644
--- a/model/AdminpasswordHandler.php
+++ b/model/AdminpasswordHandler.php
@@ -39,7 +39,7 @@ class AdminpasswordHandler extends PFAHandler
);
}
- public function init($id) :bool
+ public function init(string $id) :bool
{
# hardcode to logged in admin
if ($this->admin_username == '') {
From ae0d9436b5bf3d7c4ca0938f2d8144869ca9e63e Mon Sep 17 00:00:00 2001
From: Valery Kartel
Date: Wed, 2 Jun 2021 13:13:40 +0300
Subject: [PATCH 07/61] Update MailboxHandler.php
---
model/MailboxHandler.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/model/MailboxHandler.php b/model/MailboxHandler.php
index e907eb0f..34c76601 100644
--- a/model/MailboxHandler.php
+++ b/model/MailboxHandler.php
@@ -66,7 +66,7 @@ class MailboxHandler extends PFAHandler
}
}
- public function init($id) : bool
+ public function init(string $id) : bool
{
if (!parent::init($id)) {
return false;
From 04cbdea3d9055b921fcbe4dfbcd8751ec1e2c6a4 Mon Sep 17 00:00:00 2001
From: Valery Kartel
Date: Wed, 2 Jun 2021 13:16:38 +0300
Subject: [PATCH 08/61] Update AliasdomainHandler.php
---
model/AliasdomainHandler.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/model/AliasdomainHandler.php b/model/AliasdomainHandler.php
index e6ef3fc8..e288d1be 100644
--- a/model/AliasdomainHandler.php
+++ b/model/AliasdomainHandler.php
@@ -53,7 +53,7 @@ class AliasdomainHandler extends PFAHandler
}
}
- public function init($id) : bool
+ public function init(string $id) : bool
{
$success = parent::init($id);
if ($success) {
From 4f31aa4220380f3717bdaa1848b96edbe8240a93 Mon Sep 17 00:00:00 2001
From: Valery Kartel
Date: Wed, 2 Jun 2021 13:18:21 +0300
Subject: [PATCH 09/61] Update VacationHandler.php
---
model/VacationHandler.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/model/VacationHandler.php b/model/VacationHandler.php
index c01f7db8..9ac2c740 100644
--- a/model/VacationHandler.php
+++ b/model/VacationHandler.php
@@ -19,7 +19,7 @@ class VacationHandler extends PFAHandler
*/
protected $domain_field = 'domain';
- public function init($id) : bool
+ public function init(string $id) : bool
{
throw new \Exception('VacationHandler is not yet ready to be used with *Handler methods');
}
From d54754097f76dd70a8ffc58ce7950c7d1f621808 Mon Sep 17 00:00:00 2001
From: Valery Kartel
Date: Wed, 2 Jun 2021 13:24:11 +0300
Subject: [PATCH 10/61] Update AliasdomainHandler.php
---
model/AliasdomainHandler.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/model/AliasdomainHandler.php b/model/AliasdomainHandler.php
index e6ef3fc8..e288d1be 100644
--- a/model/AliasdomainHandler.php
+++ b/model/AliasdomainHandler.php
@@ -53,7 +53,7 @@ class AliasdomainHandler extends PFAHandler
}
}
- public function init($id) : bool
+ public function init(string $id) : bool
{
$success = parent::init($id);
if ($success) {
From f3920247848fc221c07e4b4ffe93936b2ddc6a3f Mon Sep 17 00:00:00 2001
From: Valery Kartel
Date: Wed, 2 Jun 2021 13:25:02 +0300
Subject: [PATCH 11/61] Update VacationHandler.php
---
model/VacationHandler.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/model/VacationHandler.php b/model/VacationHandler.php
index c01f7db8..9ac2c740 100644
--- a/model/VacationHandler.php
+++ b/model/VacationHandler.php
@@ -19,7 +19,7 @@ class VacationHandler extends PFAHandler
*/
protected $domain_field = 'domain';
- public function init($id) : bool
+ public function init(string $id) : bool
{
throw new \Exception('VacationHandler is not yet ready to be used with *Handler methods');
}
From 7b66b9baa9d34fd6372fa217a005cf188824b0bf Mon Sep 17 00:00:00 2001
From: Matt Darcy
Date: Thu, 3 Jun 2021 12:54:19 +0100
Subject: [PATCH 12/61] removed broken link to postfixadmin.org website
---
public/index.php | 1 -
1 file changed, 1 deletion(-)
diff --git a/public/index.php b/public/index.php
index bbbc5734..9cd89fa9 100644
--- a/public/index.php
+++ b/public/index.php
@@ -84,7 +84,6 @@ if ($CONF['configured']) {
For further help, or documentation please check out -
From 31747fca89a8c6b5347e9e5f97847003a0a2d64d Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Fri, 11 Jun 2021 21:14:21 +0100
Subject: [PATCH 13/61] try adding a php matrix in
---
.github/workflows/php.yml | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index e94837a7..3d5391d8 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -4,14 +4,22 @@ on: [push]
jobs:
build:
-
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ php-versions: ['7.2', '7.3', '7.4', '8.0' ]
steps:
- - uses: actions/checkout@v1
+ - uses: actions/checkout@v2
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ tools: composer
- name: Validate composer.json and composer.lock
- run: php7.4 $(which composer) validate
+ run: composer validate
- name: setup templates_c
run: mkdir templates_c || true
@@ -20,10 +28,10 @@ jobs:
run: touch config.local.php && php -v
- name: Install dependencies
- run: php7.4 $(which composer) install --prefer-dist -n
+ run: composer install --prefer-dist -n
- name: Build/test
- run: php7.4 $(which composer) build
+ run: composer build
- name: setup coveralls
run: mkdir -p build/logs || true
@@ -32,3 +40,4 @@ jobs:
run: vendor/bin/coveralls ./clover.xml || true
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
+
From 48d4435b849bc3e0c7b82045f118031ada3c0691 Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Fri, 11 Jun 2021 21:55:02 +0100
Subject: [PATCH 14/61] try and get php-coveralls working
---
.github/workflows/php.yml | 35 ++++++++++++++++++++++++++++++++---
composer.json | 4 ++--
phpunit.xml | 1 +
3 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index 3d5391d8..ab444e18 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -33,11 +33,40 @@ jobs:
- name: Build/test
run: composer build
- - name: setup coveralls
- run: mkdir -p build/logs || true
+ - name: build coveralls coverage
+ run: php -m xdebug.mode=coverage vendor/bin/phpunit tests
- name: Coveralls
- run: vendor/bin/coveralls ./clover.xml || true
+ run: vendor/bin/php-coveralls ./clover.xml || true
+ env:
+ COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
+
+ post_build:
+ needs: [build]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: '7.4'
+ tools: composer
+
+ - name: setup templates_c
+ run: mkdir templates_c || true
+
+ - name: touch config.local.php
+ run: touch config.local.php && php -v
+
+ - name: Install dependencies
+ run: composer install --prefer-dist -n
+
+ - name: build coveralls coverage
+ run: php -m xdebug.mode=coverage vendor/bin/phpunit tests
+
+ - name: Coveralls
+ run: vendor/bin/php-coveralls ./clover.xml || true
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
diff --git a/composer.json b/composer.json
index c7612059..b27253d4 100644
--- a/composer.json
+++ b/composer.json
@@ -13,7 +13,7 @@
],
"check-format": "@php vendor/bin/php-cs-fixer fix --ansi --dry-run --diff",
"format": "@php vendor/bin/php-cs-fixer fix --ansi",
- "lint": "@php ./vendor/bin/parallel-lint --exclude vendor/ --exclude lib/block_random_int.php --exclude lib/array_column.php .",
+ "lint": "@php ./vendor/bin/parallel-lint --exclude vendor/ .",
"test": "@php ./vendor/bin/phpunit --coverage-clover ./clover.xml tests/",
"test-fixup": "mkdir -p templates_c ; test -f config.local.php || touch config.local.php",
"psalm": "@php ./vendor/bin/psalm --no-cache --show-info=false "
@@ -27,7 +27,7 @@
"friendsofphp/php-cs-fixer": "^2.19",
"php-parallel-lint/php-parallel-lint": "^1.0",
"php": ">7.2.0",
- "cedx/coveralls": "^11.0",
+ "php-coveralls/php-coveralls": "*",
"phpunit/phpunit": "8.*",
"vimeo/psalm":"^4.0",
"shardj/zf1-future" : "^1.12"
diff --git a/phpunit.xml b/phpunit.xml
index dd3349ba..612f6892 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -12,6 +12,7 @@
+
From d3851a840d8b837eb5742cbbc3c4db1638a5a7e0 Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Fri, 11 Jun 2021 21:57:02 +0100
Subject: [PATCH 15/61] coveralls...
---
.github/workflows/php.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index ab444e18..c0392686 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -66,7 +66,7 @@ jobs:
run: php -m xdebug.mode=coverage vendor/bin/phpunit tests
- name: Coveralls
- run: vendor/bin/php-coveralls ./clover.xml || true
+ run: vendor/bin/php-coveralls || true
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
From b48ab571a3620b355717461f5bc04c259b065541 Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Fri, 11 Jun 2021 22:02:21 +0100
Subject: [PATCH 16/61] what is an m or a d between friends?
---
.github/workflows/php.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index c0392686..fde91243 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -63,7 +63,7 @@ jobs:
run: composer install --prefer-dist -n
- name: build coveralls coverage
- run: php -m xdebug.mode=coverage vendor/bin/phpunit tests
+ run: php -d xdebug.mode=coverage vendor/bin/phpunit tests
- name: Coveralls
run: vendor/bin/php-coveralls || true
From 39058134d8e5ac1a3a6ddf8dfe3100147a7e05b2 Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Fri, 11 Jun 2021 22:18:20 +0100
Subject: [PATCH 17/61] fix path
---
phpunit.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/phpunit.xml b/phpunit.xml
index 612f6892..026f1351 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -12,7 +12,7 @@
-
+
From e9cea4d4c4a53e28c5bedf7989408c931f223b65 Mon Sep 17 00:00:00 2001
From: David Goodwin
Date: Sat, 12 Jun 2021 21:09:42 +0100
Subject: [PATCH 18/61] update screenshots perhaps
---
DOCUMENTS/screenshots/README.md | 31 ++++++++++++++++++
DOCUMENTS/screenshots/README.txt | 2 --
DOCUMENTS/screenshots/admin-list.png | Bin 0 -> 221869 bytes
DOCUMENTS/screenshots/admin-login.png | Bin 0 -> 174033 bytes
DOCUMENTS/screenshots/admin-welcome.png | Bin 0 -> 227559 bytes
DOCUMENTS/screenshots/create-new-alias.png | Bin 0 -> 190272 bytes
DOCUMENTS/screenshots/domain-audit-log.png | Bin 0 -> 339880 bytes
DOCUMENTS/screenshots/domain-edit.png | Bin 0 -> 222159 bytes
DOCUMENTS/screenshots/domain-list.png | Bin 0 -> 216031 bytes
.../screenshots/fetchmail-new-config.png | Bin 0 -> 223032 bytes
DOCUMENTS/screenshots/mailbox-adding.png | Bin 0 -> 232570 bytes
.../mailboxes-and-forwards-for-domain.png | Bin 0 -> 323197 bytes
.../postfixadmin-admin-create-alias.jpg | Bin 67477 -> 0 bytes
.../postfixadmin-admin-create-domain.jpg | Bin 68489 -> 0 bytes
.../postfixadmin-admin-create-mailbox.jpg | Bin 81176 -> 0 bytes
.../postfixadmin-admin-domain-list.jpg | Bin 76802 -> 0 bytes
.../postfixadmin-admin-virtual-list.jpg | Bin 94624 -> 0 bytes
.../postfixadmin-inital-welcome.jpg | Bin 145515 -> 0 bytes
.../postfixadmin-mail-admin-login.jpg | Bin 46342 -> 0 bytes
.../postfixadmin-user-change-forward.jpg | Bin 88098 -> 0 bytes
.../postfixadmin-user-overview.jpg | Bin 81628 -> 0 bytes
.../postfixadmin-user-vacation.jpg | Bin 92976 -> 0 bytes
DOCUMENTS/screenshots/setup-step1.png | Bin 0 -> 358335 bytes
DOCUMENTS/screenshots/setup-step2.png | Bin 0 -> 461407 bytes
.../screenshots/users-edit-mail-forward.png | Bin 0 -> 191998 bytes
.../users-enable-vacation-autoresponse.png | Bin 0 -> 212941 bytes
.../screenshots/users-forgotten-password.png | Bin 0 -> 141634 bytes
DOCUMENTS/screenshots/users-login.png | Bin 0 -> 166386 bytes
DOCUMENTS/screenshots/users-welcome.png | Bin 0 -> 175175 bytes
29 files changed, 31 insertions(+), 2 deletions(-)
create mode 100644 DOCUMENTS/screenshots/README.md
delete mode 100644 DOCUMENTS/screenshots/README.txt
create mode 100644 DOCUMENTS/screenshots/admin-list.png
create mode 100644 DOCUMENTS/screenshots/admin-login.png
create mode 100644 DOCUMENTS/screenshots/admin-welcome.png
create mode 100644 DOCUMENTS/screenshots/create-new-alias.png
create mode 100644 DOCUMENTS/screenshots/domain-audit-log.png
create mode 100644 DOCUMENTS/screenshots/domain-edit.png
create mode 100644 DOCUMENTS/screenshots/domain-list.png
create mode 100644 DOCUMENTS/screenshots/fetchmail-new-config.png
create mode 100644 DOCUMENTS/screenshots/mailbox-adding.png
create mode 100644 DOCUMENTS/screenshots/mailboxes-and-forwards-for-domain.png
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-admin-create-alias.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-admin-create-domain.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-admin-create-mailbox.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-admin-domain-list.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-admin-virtual-list.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-inital-welcome.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-mail-admin-login.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-user-change-forward.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-user-overview.jpg
delete mode 100644 DOCUMENTS/screenshots/postfixadmin-user-vacation.jpg
create mode 100644 DOCUMENTS/screenshots/setup-step1.png
create mode 100644 DOCUMENTS/screenshots/setup-step2.png
create mode 100644 DOCUMENTS/screenshots/users-edit-mail-forward.png
create mode 100644 DOCUMENTS/screenshots/users-enable-vacation-autoresponse.png
create mode 100644 DOCUMENTS/screenshots/users-forgotten-password.png
create mode 100644 DOCUMENTS/screenshots/users-login.png
create mode 100644 DOCUMENTS/screenshots/users-welcome.png
diff --git a/DOCUMENTS/screenshots/README.md b/DOCUMENTS/screenshots/README.md
new file mode 100644
index 00000000..c825334d
--- /dev/null
+++ b/DOCUMENTS/screenshots/README.md
@@ -0,0 +1,31 @@
+# Some screenshos of Postfixadmin
+
+## 1. Setup process
+
+
+## 2. As an Admin user
+
+### Login
+
+### Welcome page
+
+### View other admins
+
+### Add mailbox
+
+### Add Fetchmail config for mailbox
+
+
+## 3. As a User
+
+### Login
+
+
+### Welcome page
+
+### Change your mail forward
+
+### Set / Unset autoresponse (Vacation)
+
+### I forgot my password
+
diff --git a/DOCUMENTS/screenshots/README.txt b/DOCUMENTS/screenshots/README.txt
deleted file mode 100644
index e97b5262..00000000
--- a/DOCUMENTS/screenshots/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Random Screenshots taken on 2007/09/25, using a version of Postfixadmin from subversion.
-
diff --git a/DOCUMENTS/screenshots/admin-list.png b/DOCUMENTS/screenshots/admin-list.png
new file mode 100644
index 0000000000000000000000000000000000000000..f659f659139753a8c823bbf8b8ce35daab18f28a
GIT binary patch
literal 221869
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