Browse Source
Initial Import in SourceForge
Initial Import in SourceForge
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/tags/postfixadmin-2.0.2@1 a1433add-5e2c-0410-b055-b7f2511e0802postfixadmin-2.0.2
commit
9a9936f0da
87 changed files with 7865 additions and 0 deletions
-
124CHANGELOG.TXT
-
133DATABASE.TXT
-
77INSTALL.TXT
-
50LICENSE.TXT
-
102TABLE_CHANGES.TXT
-
84UPGRADE.TXT
-
512VIRTUAL_VACATION/FILTER_README
-
138VIRTUAL_VACATION/INSTALL.TXT
-
17VIRTUAL_VACATION/mail-filter
-
107VIRTUAL_VACATION/vacation.pl
-
8admin/.htaccess
-
1admin/.htpasswd
-
81admin/backup.php
-
99admin/create-admin.php
-
113admin/create-alias.php
-
94admin/create-domain.php
-
177admin/create-mailbox.php
-
121admin/delete.php
-
115admin/edit-admin.php
-
98admin/edit-alias.php
-
72admin/edit-domain.php
-
115admin/edit-mailbox.php
-
3admin/index.php
-
41admin/list-admin.php
-
64admin/list-domain.php
-
105admin/list-virtual.php
-
63admin/viewlog.php
-
83config.inc.php.sample
-
123create-alias.php
-
188create-mailbox.php
-
82delete.php
-
110edit-alias.php
-
128edit-mailbox.php
-
523functions.inc.php
-
17index.php
-
286languages/de.lang
-
284languages/en.lang
-
284languages/es.lang
-
69login.php
-
25logout.php
-
36main.php
-
113overview.php
-
87password.php
-
BINpostfixadmin.png
-
67sendmail.php
-
184stylesheet.css
-
71templates/admin_create-admin.tpl
-
91templates/admin_create-domain.tpl
-
115templates/admin_create-mailbox.tpl
-
84templates/admin_edit-admin.tpl
-
86templates/admin_edit-domain.tpl
-
32templates/admin_list-admin.tpl
-
57templates/admin_list-domain.tpl
-
85templates/admin_list-virtual.tpl
-
62templates/admin_menu.tpl
-
57templates/create-alias.tpl
-
116templates/create-mailbox.tpl
-
2templates/delete.tpl
-
49templates/edit-alias.tpl
-
90templates/edit-mailbox.tpl
-
12templates/footer.tpl
-
19templates/header.tpl
-
69templates/login.tpl
-
66templates/main.tpl
-
50templates/menu.tpl
-
44templates/overview-get.tpl
-
85templates/overview.tpl
-
62templates/password.tpl
-
66templates/sendmail.tpl
-
50templates/users_edit-alias.tpl
-
62templates/users_login.tpl
-
39templates/users_main.tpl
-
37templates/users_menu.tpl
-
62templates/users_password.tpl
-
17templates/users_vacation-get.tpl
-
42templates/users_vacation.tpl
-
62templates/vcp.tpl
-
53templates/viewlog.tpl
-
98users/edit-alias.php
-
17users/index.php
-
69users/login.php
-
25users/logout.php
-
36users/main.php
-
90users/password.php
-
89users/vacation.php
-
65variables.inc.php
-
79viewlog.php
@ -0,0 +1,124 @@ |
|||
############################# |
|||
# Postfix Admin Release 2.x # |
|||
############################# |
|||
# |
|||
# 2004 (c) High5! |
|||
# Created by: Mischa Peters <mischa at high5 dot net> |
|||
# |
|||
Version 2.0.2 -- 2004/01/06 |
|||
---------------------------- |
|||
- Fixed: The body was not included using sendmail.php. |
|||
- Fixed: Undefined variables. |
|||
- Fixed: Minor HTML cleanup. |
|||
- Added: German language. (Thanx Tobias) |
|||
- Added: Spanish language. (Thanx Alvaro) |
|||
|
|||
|
|||
Version 2.0.1 -- 2004/01/04 |
|||
---------------------------- |
|||
- Fixed: The language variable caused a problem on some systems. |
|||
|
|||
|
|||
Version 2.0.0 -- 2004/01/03 |
|||
---------------------------- |
|||
- Added: The ability for one domain admin to maintain multiple domains. |
|||
- Added: Domain to domain forwarding. |
|||
- Added: Mailboxes can now be activated or deactivated. |
|||
- Added: Configurable welcome message for new mailboxes. |
|||
- Added: Optional sending of welcome message. |
|||
- Added: Create alias "To" defaults to current domain. |
|||
- Added: Logging of admin / user actions. |
|||
- Added: Limit for aliases and/or mailboxes per domain. |
|||
- Added: Disable aliases and/or mailboxes per domain. |
|||
- Added: Max quota per mailbox per domain. |
|||
- Added: Multi-Language support. |
|||
- Added: Statistics overview for all domains. |
|||
- Added: User .forwarding for mailbox users. |
|||
- Added: Logo for Postfix Admin (Thanx Andrew). |
|||
- Added: Extra MySQL debugging capabilities. |
|||
- Added: Clear text password support. |
|||
- Added: PHP crypt() support. |
|||
- Changed: Separated logic and SQL from content. |
|||
- Changed: config.inc.php doesn't point to example.com anymore. |
|||
- Changed: Virtual Vacation no longer requires procmail. |
|||
- Changed: Complete re-write. |
|||
|
|||
|
|||
Version 1.5.4 -- 2003/06/16 |
|||
---------------------------- |
|||
- Added: Option for "Back to". |
|||
- Added: Option for Vacation module. |
|||
- Added: Table declaration for the use of Quota in the INSTALL.TXT. |
|||
This requires an additional local delivery agent. |
|||
Quotas are not supported by Postfix! |
|||
- Changed: The word "View" to "List". |
|||
|
|||
|
|||
Version 1.5.3 -- 2003/06/06 |
|||
---------------------------- |
|||
- Fixed: Even more minor bugs in regards to declaration of variables. |
|||
(Thanx Aquilante and Kyle_m) |
|||
|
|||
|
|||
Version 1.5.2 -- 2003/06/05 |
|||
---------------------------- |
|||
- Fixed: Minor bugs in regards to declaration of variables. |
|||
|
|||
|
|||
Version 1.5.1 -- 2003/06/04 |
|||
---------------------------- |
|||
- Added: Optional mailbox per domain directory structure. (Thanx Jim) |
|||
- Added: Option to completely control the stored aliases. (Thanx Alex) |
|||
- Change: config.inc.php is renamed to config.inc.php.sample. (Thanx Alex) |
|||
- Fixed: $PHP_SELF in config.inc.php and my_lib.php. (Thanx Jim) |
|||
|
|||
|
|||
Version 1.5.0 -- 2003/05/28 |
|||
---------------------------- |
|||
- Added: Support for "Back to Main Site" |
|||
- Added: config.inc.php as the main configuration file. |
|||
- Added: Drop down box for domain selection when adding a new admin. |
|||
- Added: Resend of test email to newly created mailbox. |
|||
- Added: Mailbox and Aliases count for domainview. |
|||
- Added: Change description of domain without deleting the complete |
|||
domain. |
|||
- Added: Change name of mailbox user without deleting the mailbox. |
|||
- Added: Expire headers for unnecessary reloads. (Thanx Alex) |
|||
- Removed: Completely removed the site_lib.php. |
|||
- Removed: my_lib.php from the admin directory. |
|||
- Removed: Symlink to index.php. |
|||
- Fix: Code clean up. |
|||
- Fix: Minor bugs and cosmetic fixes. |
|||
- Fix: Modified check_string() to check numbers and returns false if not |
|||
matched. (Thanx btaber) |
|||
- Fix: Correct session handling in login.php (Thanx Yen-Wei Liu) |
|||
- Fix: Correct deletion of RFC822 email addresses. (Thanx Yen-Wei Liu) |
|||
|
|||
|
|||
Version 1.4.0 -- 2003/04/07 |
|||
---------------------------- |
|||
- Added: When deleting a domain, all aliases and mailboxes for that domain |
|||
are also deleted from the database. |
|||
- Added: Add standard aliases for every domain that is created. |
|||
These aliases can point to the main "local" administrator. |
|||
The aliases are configured in the config.php in the admin directory. |
|||
- Change: The layout of my_lib.php and site_lib.php have been changed. |
|||
- Change: Modifying an alias is now done with TEXTAREA for more |
|||
flexibility. |
|||
- Fix: Minor bugs and cosmetic fixes. |
|||
|
|||
|
|||
Version 1.3.8a -- 2003/03/31 |
|||
---------------------------- |
|||
- Fix: After deletion of a domain it would not return to the correct page. |
|||
|
|||
|
|||
Version 1.3.8 -- 2003/03/25 |
|||
---------------------------- |
|||
- Added: Admin password change. No longer needed to delete and re-enter |
|||
the admin user for a specific domain. |
|||
|
|||
|
|||
Version 1.3.7 -- 2002/12/24 |
|||
---------------------------- |
|||
- Initial public release of Postfix Admin. |
|||
@ -0,0 +1,133 @@ |
|||
############################# |
|||
# Postfix Admin Release 2.x # |
|||
############################# |
|||
# |
|||
# 2004 (c) High5! |
|||
# Created by: Mischa Peters <mischa at high5 dot net> |
|||
# |
|||
# This is the complete database structure for Postfix Admin. |
|||
# If you are installing from scratch you can use this file otherwise you |
|||
# need to use the upgrader that comes with Postfix Admin. |
|||
# |
|||
# There are 2 entries for a database user in the file. |
|||
# One you can use for Postfix and one for Postfix Admin. |
|||
# |
|||
# You can create the database from the shell with: |
|||
# |
|||
# mysql -u root [-p] < DATABASE.TXT |
|||
|
|||
# |
|||
# Postfix / MySQL |
|||
# |
|||
USE mysql; |
|||
# Postfix user & password |
|||
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('postfix')); |
|||
INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y'); |
|||
# Postfix Admin user & password |
|||
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password('postfixadmin')); |
|||
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) VALUES ('localhost', 'postfix', 'postfixadmin', 'Y', 'Y', 'Y', 'Y'); |
|||
FLUSH PRIVILEGES; |
|||
GRANT USAGE ON postfix.* TO postfix@localhost; |
|||
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfix@localhost; |
|||
GRANT USAGE ON postfix.* TO postfixadmin@localhost; |
|||
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfixadmin@localhost; |
|||
CREATE DATABASE postfix; |
|||
USE postfix; |
|||
|
|||
# |
|||
# Table structure for table admin |
|||
# |
|||
CREATE TABLE admin ( |
|||
username varchar(255) NOT NULL default '', |
|||
password varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
modified datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
PRIMARY KEY (username), |
|||
KEY username (username) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Admins'; |
|||
|
|||
# |
|||
# Table structure for table alias |
|||
# |
|||
CREATE TABLE alias ( |
|||
address varchar(255) NOT NULL default '', |
|||
goto text NOT NULL, |
|||
domain varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
modified datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
PRIMARY KEY (address), |
|||
KEY address (address) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Aliases'; |
|||
|
|||
# |
|||
# Table structure for table domain |
|||
# |
|||
CREATE TABLE domain ( |
|||
domain varchar(255) NOT NULL default '', |
|||
description varchar(255) NOT NULL default '', |
|||
aliases int(10) NOT NULL default '-1', |
|||
mailboxes int(10) NOT NULL default '-1', |
|||
maxquota int(10) NOT NULL default '-1', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
modified datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
PRIMARY KEY (domain), |
|||
KEY domain (domain) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains'; |
|||
|
|||
# |
|||
# Table structure for table domain_admins |
|||
# |
|||
CREATE TABLE domain_admins ( |
|||
username varchar(255) NOT NULL default '', |
|||
domain varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
KEY username (username) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Domain Admins'; |
|||
|
|||
# |
|||
# Table structure for table log |
|||
# |
|||
CREATE TABLE log ( |
|||
timestamp datetime NOT NULL default '0000-00-00 00:00:00', |
|||
username varchar(255) NOT NULL default '', |
|||
domain varchar(255) NOT NULL default '', |
|||
action varchar(255) NOT NULL default '', |
|||
data varchar(255) NOT NULL default '', |
|||
KEY timestamp (timestamp) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Log'; |
|||
|
|||
# |
|||
# Table structure for table mailbox |
|||
# |
|||
CREATE TABLE mailbox ( |
|||
username varchar(255) NOT NULL default '', |
|||
password varchar(255) NOT NULL default '', |
|||
name varchar(255) NOT NULL default '', |
|||
maildir varchar(255) NOT NULL default '', |
|||
quota int(10) NOT NULL default '-1', |
|||
domain varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
modified datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
PRIMARY KEY (username), |
|||
KEY username (username) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes'; |
|||
|
|||
# |
|||
# Table structure for table vacation |
|||
# |
|||
CREATE TABLE vacation ( |
|||
email varchar(255) NOT NULL default '', |
|||
subject varchar(255) NOT NULL default '', |
|||
body text NOT NULL, |
|||
cache text NOT NULL, |
|||
domain varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
PRIMARY KEY (email), |
|||
KEY email (email) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation'; |
|||
@ -0,0 +1,77 @@ |
|||
############################# |
|||
# Postfix Admin Release 2.x # |
|||
############################# |
|||
# |
|||
# 2004 (c) High5! |
|||
# Created by: Mischa Peters <mischa at high5 dot net> |
|||
# |
|||
|
|||
REQUIRED!! |
|||
---------- |
|||
- You are using Postfix 2.0 or higher. |
|||
- You are using Apache 1.3.27 or higher. |
|||
- You are using PHP 4.1 or higher. |
|||
- You are using MySQL 3.23.55 or higher. |
|||
|
|||
|
|||
READ THIS FIRST! |
|||
---------------- |
|||
When this is an upgrade from Postfix Admin 1.5.4 please read UPGRADE.TXT!! |
|||
If you used the table structure from the Howto please read the UPGRADE.TXT!! |
|||
|
|||
|
|||
1. Unarchive new Postfix Admin |
|||
------------------------------ |
|||
Make sure that you are in your WWW directory and then unarchive the |
|||
Postfix Admin archive (whatever the filename is): |
|||
|
|||
$ tar -zxvf postfixadmin-2.0.0.tgz |
|||
|
|||
|
|||
2. Change permissions |
|||
---------------------- |
|||
Since the database password is stored in the config.inc.php it's a good idea |
|||
to have Postfix Admin set to the permission of the webserver. In this |
|||
example, we assume that user "www" and group "www" are the web server as is |
|||
often the case with Apache. |
|||
|
|||
$ cd /usr/local/www |
|||
$ chown -R www:www postfixadmin-2.0.0 |
|||
|
|||
This is also a good idea for the file permissions. |
|||
|
|||
$ cd /usr/local/www/postfixadmin-2.0.0 |
|||
$ chmod 640 *.php *.css |
|||
$ cd /usr/local/www/postfixadmin-2.0.0/admin/ |
|||
$ chmod 640 *.php *.css |
|||
$ cd /usr/local/www/postfixadmin-2.0.0/users/ |
|||
$ chmod 640 *.php *.css |
|||
$ cd /usr/local/www/postfixadmin-2.0.0/templates/ |
|||
$ chmod 640 *.php *.css |
|||
|
|||
Additionally, if "chown user:group" doesn't work, you can use "chown user" |
|||
and "chgrp group" instead. See the man pages for these commands for more |
|||
information. |
|||
|
|||
|
|||
3. Create the MySQL Tables |
|||
-------------------------- |
|||
In DATABASE.TXT you can find the table structure that you need in order to |
|||
configure Postfix Admin and Postfix in general to work with Virtual Domains |
|||
and Users |
|||
|
|||
|
|||
4. Configure |
|||
------------ |
|||
Check the config.inc.php file. There you can specify settings that are |
|||
relevant to your setup. |
|||
|
|||
The default password for the admin part of Postfix Admin is admin/admin. |
|||
This is specified in the .htpasswd file in the admin directory. Make sure |
|||
that the location of the .htpasswd file matches your path. |
|||
|
|||
|
|||
5. Done |
|||
------- |
|||
This is all that is needed. Fire up your browser and go to the site that you |
|||
specified to host Postfix Admin. |
|||
@ -0,0 +1,50 @@ |
|||
License for Postfix Admin: |
|||
|
|||
The contents of this file are subject to the Mozilla Public License |
|||
Version 1.1 (the "License"); you may not use this file except in |
|||
compliance with the License. You may obtain a copy of the License at |
|||
http://www.mozilla.org/MPL/ |
|||
|
|||
Software distributed under the License is distributed on an "AS IS" |
|||
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|||
License for the specific language governing rights and limitations |
|||
under the License. |
|||
|
|||
The Original Code is Postfix Admin. |
|||
|
|||
The Initial Developer of the Original Code is Mischa Peters <mischa@high5.net>. |
|||
Portions created by Mischa Peters are Copyright (c) 2002, 2003, 2004. |
|||
All Rights Reserved. |
|||
|
|||
Contributor(s): |
|||
|
|||
|
|||
This project includes work by Mischa Peters and others that is: |
|||
|
|||
Copyright (c) 2002,2003,2004 Mischa Peters |
|||
All rights reserved. |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions are met: |
|||
|
|||
Redistributions of source code must retain the above copyright notice, |
|||
this list of conditions and the following disclaimer. |
|||
|
|||
Redistributions in binary form must reproduce the above copyright notice, |
|||
this list of conditions and the following disclaimer in the documentation |
|||
and/or other materials provided with the distribution. |
|||
|
|||
Neither the names of the copyright holders nor the names of the XLW |
|||
Group and its contributors may be used to endorse or promote products |
|||
derived from this software without specific prior written permission. |
|||
|
|||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
|||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE |
|||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
|||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
|||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|||
@ -0,0 +1,102 @@ |
|||
############################# |
|||
# Postfix Admin Release 2.x # |
|||
############################# |
|||
# |
|||
# 2004 (c) High5! |
|||
# Created by: Mischa Peters <mischa at high5 dot net> |
|||
# |
|||
# mysql -u root [-p] < TABLE_CHANGES.TXT |
|||
|
|||
# |
|||
# Table structure for table domain_admins |
|||
# |
|||
USE postfix; |
|||
CREATE TABLE IF NOT EXISTS domain_admins ( |
|||
username varchar(255) NOT NULL default '', |
|||
domain varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
KEY username (username) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Domain Admins'; |
|||
|
|||
# |
|||
# Table structure for table log |
|||
# |
|||
CREATE TABLE IF NOT EXISTS log ( |
|||
timestamp datetime NOT NULL default '0000-00-00 00:00:00', |
|||
username varchar(255) NOT NULL default '', |
|||
domain varchar(255) NOT NULL default '', |
|||
action varchar(255) NOT NULL default '', |
|||
data varchar(255) NOT NULL default '', |
|||
KEY timestamp (timestamp) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Log'; |
|||
|
|||
# |
|||
# Table structure for table vacation |
|||
# |
|||
CREATE TABLE IF NOT EXISTS vacation ( |
|||
email varchar(255) NOT NULL default '', |
|||
subject varchar(255) NOT NULL default '', |
|||
body text NOT NULL, |
|||
cache text NOT NULL, |
|||
domain varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
PRIMARY KEY (email), |
|||
KEY email (email) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation'; |
|||
|
|||
# |
|||
# Modify table structure for table admin |
|||
# |
|||
ALTER TABLE admin CHANGE create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE admin CHANGE change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE admin ADD INDEX (username); |
|||
|
|||
# |
|||
# Modify table structure for table alias |
|||
# |
|||
ALTER TABLE alias CHANGE create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE alias CHANGE change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE alias ADD INDEX (address); |
|||
|
|||
# |
|||
# Modify table structure for table domain |
|||
# |
|||
ALTER TABLE domain CHANGE create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE domain CHANGE change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE domain ADD aliases INT(10) DEFAULT '-1' NOT NULL AFTER description; |
|||
ALTER TABLE domain ADD mailboxes INT(10) DEFAULT '-1' NOT NULL AFTER aliases; |
|||
ALTER TABLE domain ADD maxquota INT(10) DEFAULT '-1' NOT NULL AFTER mailboxes; |
|||
ALTER TABLE domain ADD INDEX (domain); |
|||
|
|||
# |
|||
# Modify table structure for table mailbox |
|||
# |
|||
ALTER TABLE mailbox CHANGE create_date created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE mailbox CHANGE change_date modified DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL; |
|||
ALTER TABLE mailbox ADD quota INT(10) DEFAULT '-1' NOT NULL AFTER maildir; |
|||
ALTER TABLE mailbox ADD INDEX (username); |
|||
|
|||
# |
|||
# Modify table structure for table vacation |
|||
# |
|||
ALTER TABLE vacation ADD domain VARCHAR(255) DEFAULT '' NOT NULL AFTER cache; |
|||
ALTER TABLE vacation ADD created DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL AFTER domain; |
|||
ALTER TABLE vacation ADD active TINYINT(4) DEFAULT '' NOT NULL AFTER created; |
|||
ALTER TABLE vacation DROP PRIMARY KEY, ADD PRIMARY KEY(email); |
|||
|
|||
# |
|||
# Dumping data for table domain_admins |
|||
# |
|||
INSERT INTO domain_admins (username,domain,created) SELECT admin.username,admin.domain,domain.created FROM admin LEFT JOIN domain ON domain.domain=admin.domain; |
|||
|
|||
# |
|||
# Modify data for table vacation |
|||
# |
|||
UPDATE vacation SET domain=SUBSTRING_INDEX(email, '@', -1) WHERE email=email; |
|||
|
|||
# |
|||
# Modify table structure for table domain |
|||
# |
|||
ALTER TABLE admin DROP domain; |
|||
@ -0,0 +1,84 @@ |
|||
############################# |
|||
# Postfix Admin Release 2.x # |
|||
############################# |
|||
# |
|||
# 2004 (c) High5! |
|||
# Created by: Mischa Peters <mischa at high5 dot net> |
|||
# |
|||
|
|||
REQUIRED!! |
|||
---------- |
|||
- You are using Postfix 2.0 or higher. |
|||
- You are using Apache 1.3.27 or higher. |
|||
- You are using PHP 4.1 or higher. |
|||
- You are using MySQL 3.23.55 or higher. |
|||
|
|||
|
|||
READ THIS FIRST! |
|||
---------------- |
|||
It's recommened that you install Postfix Admin in a new folder and not |
|||
on-top of the old install!! |
|||
Make sure you backup your database before you run the TABLE_CHANGES.TXT on |
|||
your database. |
|||
|
|||
|
|||
1. Backup the Database |
|||
---------------------- |
|||
When you install from a previous version make sure you backup your database |
|||
first. There are a lot of changes in the database structure since Postfix Admin |
|||
1.5.4. |
|||
|
|||
$ mysqldump -a -u root -p > /tmp/postfixadmin-backup.sql |
|||
|
|||
|
|||
2. Unarchive new Postfix Admin |
|||
------------------------------ |
|||
Make sure that you are in your WWW directory and then unarchive the |
|||
Postfix Admin archive (whatever the filename is): |
|||
|
|||
$ tar -zxvf postfixadmin-2.0.0.tgz |
|||
|
|||
|
|||
3. Change permissions |
|||
---------------------- |
|||
Since the database password is stored in the config.inc.php it's a good idea |
|||
to have Postfix Admin set to the permission of the webserver. In this |
|||
example, we assume that user "www" and group "www" are the web server as is |
|||
often the case with Apache. |
|||
|
|||
$ cd /usr/local/www |
|||
$ chown -R www:www postfixadmin-2.0.0 |
|||
|
|||
This is also a good idea for the file permissions. |
|||
|
|||
$ cd /usr/local/www/postfixadmin-2.0.0 |
|||
$ chmod 640 *.php *.css |
|||
$ cd /usr/local/www/postfixadmin-2.0.0/admin/ |
|||
$ chmod 640 *.php *.css |
|||
$ cd /usr/local/www/postfixadmin-2.0.0/users/ |
|||
$ chmod 640 *.php *.css |
|||
$ cd /usr/local/www/postfixadmin-2.0.0/templates/ |
|||
$ chmod 640 *.php *.css |
|||
|
|||
Additionally, if "chown user:group" doesn't work, you can use "chown user" |
|||
and "chgrp group" instead. See the man pages for these commands for more |
|||
information. |
|||
|
|||
|
|||
4. Modify the MySQL Tables |
|||
-------------------------- |
|||
In TABLE_CHANGES.TXT you can find the table structure that you need in order |
|||
to configure Postfix Admin 2.0.0 and Postfix in general to work with Virtual |
|||
Domains and Users |
|||
|
|||
|
|||
5. Configure |
|||
------------ |
|||
Check the config.inc.php file. There you can specify settings that are |
|||
relevant to your setup. |
|||
|
|||
|
|||
6. Done |
|||
------- |
|||
This is all that is needed. Fire up your browser and go to the site that you |
|||
specified to host Postfix Admin. |
|||
@ -0,0 +1,512 @@ |
|||
Introduction |
|||
============ |
|||
|
|||
This is a very first implementation of Postfix content filtering. |
|||
A Postfix content filter receives unfiltered mail from Postfix and |
|||
does one of the following: |
|||
|
|||
- re-injects the mail back into Postfix, perhaps after changing content |
|||
- rejects the mail (by sending a suitable status code back to |
|||
Postfix) so that it is returned to sender. |
|||
- sends the mail somewhere else |
|||
|
|||
This document describes two approaches to content filtering: simple |
|||
and advanced. Both filter all the mail by default. |
|||
|
|||
At the end are examples that show how to filter only mail from |
|||
users, about using different filters for different domains that |
|||
you provide MX service for, and about selective filtering on the |
|||
basis of message envelope and/or header/body patterns. |
|||
|
|||
Simple content filtering example |
|||
================================ |
|||
|
|||
The first example is simple to set up. It uses a shell script that |
|||
receives unfiltered mail from the Postfix pipe delivery agent, and |
|||
that feeds filtered mail back into the Postfix sendmail command. |
|||
|
|||
Only mail arriving via SMTP will be content filtered. |
|||
|
|||
.................................. |
|||
: Postfix : |
|||
Unfiltered mail----->smtpd \ /local---->Filtered mail |
|||
: -cleanup->queue- : |
|||
---->pickup / \smtp----->Filtered mail |
|||
^ : | : |
|||
| : \pipe-----+ |
|||
| .................................. | |
|||
| | |
|||
| | |
|||
+-Postfix sendmail<----filter script<--+ |
|||
|
|||
Mail is filtered by a /some/where/filter program. This can be a |
|||
simple shell script like this: |
|||
|
|||
#!/bin/sh |
|||
|
|||
# Localize these. |
|||
INSPECT_DIR=/var/spool/filter |
|||
SENDMAIL="/usr/sbin/sendmail -i" |
|||
|
|||
# Exit codes from <sysexits.h> |
|||
EX_TEMPFAIL=75 |
|||
EX_UNAVAILABLE=69 |
|||
|
|||
# Clean up when done or when aborting. |
|||
trap "rm -f in.$$" 0 1 2 3 15 |
|||
|
|||
# Start processing. |
|||
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; } |
|||
|
|||
cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; } |
|||
|
|||
# filter <in.$$ || { echo Message content rejected; exit $EX_UNAVAILABLE; } |
|||
|
|||
$SENDMAIL "$@" <in.$$ |
|||
|
|||
exit $? |
|||
|
|||
The idea is to first capture the message to file and then run the |
|||
content through a third-party content filter program. |
|||
|
|||
- If the mail cannot be captured to file, mail delivery is deferred |
|||
by terminating with exit status 75 (EX_TEMPFAIL). Postfix will |
|||
try again after some delay. |
|||
|
|||
- If the content filter program finds a problem, the mail is bounced |
|||
by terminating with exit status 69 (EX_UNAVAILABLE). Postfix |
|||
will return the message to the sender as undeliverable. |
|||
|
|||
- If the content is OK, it is given as input to the Postfix sendmail |
|||
command, and the exit status of the filter command is whatever |
|||
exit status the Postfix sendmail command produces. Postfix will |
|||
deliver the message as usual. |
|||
|
|||
I suggest that you run this script by hand until you are satisfied |
|||
with the results. Run it with a real message (headers+body) as |
|||
input: |
|||
|
|||
% /some/where/filter -f sender recipient... <message-file |
|||
|
|||
Once you're satisfied with the content filtering script: |
|||
|
|||
1 - Create a dedicated local user account called "filter". This |
|||
user handles all potentially dangerous mail content - that is |
|||
why it should be a separate account. Do not use "nobody", and |
|||
most certainly do not use "root" or "postfix". The user will |
|||
never log in, and can be given a "*" password and non-existent |
|||
shell and home directory. |
|||
|
|||
2 - Create a directory /var/spool/filter that is accessible only |
|||
to the "filter" user. This is where the content filtering script |
|||
is supposed to store its temporary files. |
|||
|
|||
3 - Define the content filter in the Postfix master file: |
|||
|
|||
/etc/postfix/master.cf: |
|||
filter unix - n n - - pipe |
|||
flags=Rq user=filter argv=/somewhere/filter -f ${sender} -- ${recipient} |
|||
|
|||
To turn on content filtering for mail arriving via SMTP only, append |
|||
"-o content_filter=filter:dummy" to the master.cf entry that defines |
|||
the Postfix SMTP server: |
|||
|
|||
/etc/postfix/master.cf: |
|||
smtp inet ...stuff... smtpd |
|||
-o content_filter=filter:dummy |
|||
|
|||
The content_filter configuration parameter accepts the same syntax |
|||
as the right-hand side in a Postfix transport table. Execute |
|||
"postfix reload" to complete the change. |
|||
|
|||
To turn off content filtering, edit the master.cf file, remove the |
|||
"-o content_filter=filter:dummy" text from the entry that defines |
|||
the Postfix SMTP server, and execute another "postfix reload". |
|||
|
|||
With the shell script as shown above you will lose a factor of four |
|||
in Postfix performance for transit mail that arrives and leaves |
|||
via SMTP. You will lose another factor in transit performance for |
|||
each additional temporary file that is created and deleted in the |
|||
process of content filtering. The performance impact is less for |
|||
mail that is submitted or delivered locally, because such deliveries |
|||
are already slower than SMTP transit mail. |
|||
|
|||
Simple content filter limitations |
|||
================================= |
|||
|
|||
The problem with content filters like the one above is that they |
|||
are not very robust. The reason is that the software does not talk |
|||
a well-defined protocol with Postfix. If the filter shell script |
|||
aborts because the shell runs into some memory allocation problem, |
|||
the script will not produce a nice exit status as defined in the |
|||
file /usr/include/sysexits.h. Instead of going to the deferred |
|||
queue, mail will bounce. The same lack of robustness can happen |
|||
when the content filtering software itself runs into a resource |
|||
problem. |
|||
|
|||
Advanced content filtering example |
|||
=================================== |
|||
|
|||
The second example is more complex, but can give much better |
|||
performance, and is less likely to bounce mail when the machine |
|||
runs into a resource problem. This approach uses content filtering |
|||
software that can receive and deliver mail via SMTP. |
|||
|
|||
Some Anti-virus software is built to receive and deliver mail via |
|||
SMTP and is ready to use as an advanced Postfix content filter. |
|||
For non-SMTP capable content filtering software, Bennett Todd's |
|||
SMTP proxy implements a nice PERL/SMTP content filtering framework. |
|||
See: http://bent.latency.net/smtpprox/ |
|||
|
|||
The example given here filters all mail, including mail that arrives |
|||
via SMTP and mail that is locally submitted via the Postfix sendmail |
|||
command. |
|||
|
|||
You can expect to lose about a factor of two in Postfix performance |
|||
for transit mail that arrives and leaves via SMTP, provided that |
|||
the content filter creates no temporary files. Each temporary file |
|||
created by the content filter adds another factor to the performance |
|||
loss. |
|||
|
|||
We will set up a content filtering program that receives SMTP mail |
|||
via localhost port 10025, and that submits SMTP mail back into |
|||
Postfix via localhost port 10026. |
|||
|
|||
.................................. |
|||
: Postfix : |
|||
----->smtpd \ /local----> |
|||
: -cleanup->queue- : |
|||
---->pickup / ^ | \smtp-----> |
|||
: | v : |
|||
: smtpd smtp : |
|||
: 10026 | : |
|||
......................|........... |
|||
^ | |
|||
| v |
|||
....|............ |
|||
: | 10025 : |
|||
: filter : |
|||
: : |
|||
................. |
|||
|
|||
To enable content filtering in this manner, specify in main.cf a |
|||
new parameter: |
|||
|
|||
/etc/postfix/main.cf: |
|||
content_filter = scan:localhost:10025 |
|||
|
|||
This causes Postfix to add one extra content filtering record to |
|||
each incoming mail message, with content scan:localhost:10025. |
|||
The content filtering records are added by the smtpd and pickup |
|||
servers. |
|||
|
|||
When a queue file has content filtering information, the queue |
|||
manager will deliver the mail to the specified content filter |
|||
regardless of its final destination. |
|||
|
|||
In this example, "scan" is an instance of the Postfix SMTP client |
|||
with slightly different configuration parameters. This is how |
|||
one would set up the service in the Postfix master.cf file: |
|||
|
|||
/etc/postfix/master.cf: |
|||
scan unix - - n - 10 smtp |
|||
|
|||
Instead of a limit of 10 concurrent processes, use whatever process |
|||
limit is feasible for your machine. Content inspection software |
|||
can gobble up a lot of system resources, so you don't want to have |
|||
too much of it running at the same time. |
|||
|
|||
The content filter can be set up with the Postfix spawn service, |
|||
which is the Postfix equivalent of inetd. For example, to instantiate |
|||
up to 10 content filtering processes on demand: |
|||
|
|||
/etc/postfix/master.cf: |
|||
localhost:10025 inet n n n - 10 spawn |
|||
user=filter argv=/some/where/filter localhost 10026 |
|||
|
|||
"filter" is a dedicated local user account. The user will never |
|||
log in, and can be given a "*" password and non-existent shell and |
|||
home directory. This user handles all potentially dangerous mail |
|||
content - that is why it should be a separate account. |
|||
|
|||
In the above example, Postfix listens on port localhost:10025. If |
|||
you want to have your filter listening on port localhost:10025 |
|||
instead of Postfix, then you must run your filter as a stand-alone |
|||
program. |
|||
|
|||
Note: the localhost port 10025 SMTP server filter should announce |
|||
itself as "220 localhost...". Postfix aborts delivery when it |
|||
connects to an SMTP server that uses the same hostname as Postfix |
|||
("host <servername> greeted me with my own hostname"), because that |
|||
normally means you have a mail delivery loop problem. |
|||
|
|||
The example here assumes that the /some/where/filter command is a |
|||
PERL script. PERL has modules that make talking SMTP easy. The |
|||
command-line specifies that mail should be sent back into Postfix |
|||
via localhost port 10026. |
|||
|
|||
The simplest content filter just copies SMTP commands and data |
|||
between its inputs and outputs. If it has a problem, all it has to |
|||
do is to reply to an input of `.' with `550 content rejected', and |
|||
to disconnect without sending `.' on the connection that injects |
|||
mail back into Postfix. |
|||
|
|||
The job of the content filter is to either bounce mail with a |
|||
suitable diagnostic, or to feed the mail back into Postfix through |
|||
a dedicated listener on port localhost 10026: |
|||
|
|||
/etc/postfix/master.cf: |
|||
localhost:10026 inet n - n - 10 smtpd |
|||
-o content_filter= |
|||
-o local_recipient_maps= |
|||
-o relay_recipient_maps= |
|||
-o myhostname=localhost.domain.tld |
|||
-o smtpd_helo_restrictions= |
|||
-o smtpd_client_restrictions= |
|||
-o smtpd_sender_restrictions= |
|||
-o smtpd_recipient_restrictions=permit_mynetworks,reject |
|||
-o mynetworks=127.0.0.0/8 |
|||
|
|||
Warning for Postfix version 2 users: in this SMTP server after the |
|||
content filter, do not override main.cf settings for virtual_alias_maps |
|||
or virtual_alias_domains. That would cause mail to be rejected with |
|||
"User unknown". |
|||
|
|||
This SMTP server has the same process limit as the "filter" master.cf |
|||
entry. |
|||
|
|||
The "-o content_filter=" requests no content filtering for incoming |
|||
mail. |
|||
|
|||
The "-o local_recipient_maps=" and "-o relay_recipient_maps=" avoid |
|||
unnecessary table lookups. |
|||
|
|||
The "-o myhostname=localhost.domain.tld" avoids false alarms ("host |
|||
<servername> greeted me with my own hostname") if your content |
|||
filter is based on a proxy that simply relays SMTP commands. |
|||
|
|||
The "-o smtpd_xxx_restrictions" and "-o mynetworks=127.0.0.0/8" |
|||
turn off UCE controls that would only waste time here. |
|||
|
|||
Squeezing out more performance |
|||
============================== |
|||
|
|||
Many refinements are possible, such as running a specially-configured |
|||
smtp delivery agent for feeding mail into the content filter, and |
|||
turning off address rewriting before content filtering. |
|||
|
|||
As the example below shows, things quickly become very complex, |
|||
because a lot of main.cf like information gets listed in the |
|||
master.cf file. This makes the system hard to understand. |
|||
|
|||
Even worse, details change as Postfix evolves and different |
|||
configuration parameters are implemented by different programs. |
|||
|
|||
If you need to squeeze out more performance, it is probably simpler |
|||
to run multiple Postfix instances, one before and one after the |
|||
content filter. That way, each instance can have simple main.cf |
|||
and master.cf files, each instance can have its own mail queue, |
|||
and the system will be easier to understand. |
|||
|
|||
As before, we will set up a content filtering program that receives |
|||
SMTP mail via localhost port 10025, and that submits SMTP mail back |
|||
into Postfix via localhost port 10026. |
|||
|
|||
....................................... |
|||
: Postfix : |
|||
----->smtpd \ : |
|||
: -pre-cleanup-\ /local----> |
|||
---->pickup / -queue- : |
|||
: -cleanup-/ | \smtp-----> |
|||
: bounces/ ^ v : |
|||
: and locally | v : |
|||
: forwarded smtpd scan : |
|||
: messages 10026 | : |
|||
...........................|........... |
|||
^ | |
|||
| v |
|||
....|............. |
|||
: | 10025 : |
|||
: filter : |
|||
: : |
|||
.................. |
|||
|
|||
To enable content filtering in this manner, specify in main.cf a |
|||
new parameter: |
|||
|
|||
/etc/postfix/main.cf: |
|||
content_filter = scan:localhost:10025 |
|||
|
|||
/etc/postfix/master.cf: |
|||
# |
|||
# These are the usual input "smtpd" and local "pickup" servers already |
|||
# present in master.cf. We add an option to select a non-default |
|||
# cleanup service (defined further below). |
|||
# |
|||
smtp inet n - n - - smtpd |
|||
-o cleanup_service_name=pre-cleanup |
|||
pickup fifo n - n 60 1 pickup |
|||
-o cleanup_service_name=pre-cleanup |
|||
# |
|||
# ------------------------------------------------------------------ |
|||
# |
|||
# This is the cleanup daemon that handles messages in front of |
|||
# the content filter. It does header_checks and body_checks (if |
|||
# any), but does no virtual alias or canonical address mapping, |
|||
# so that mail passes through your content filter with the original |
|||
# recipient addresses mostly intact. |
|||
# |
|||
# Virtual alias or canonical address mapping happens in the second |
|||
# cleanup phase after the content filter. This gives the content_filter |
|||
# access to *largely* unmodified addresses for maximum flexibility. |
|||
# |
|||
# Some sites may specifically want to perform canonical or virtual |
|||
# address mapping in front of the content_filter. In that case you |
|||
# still have to enable address rewriting in the after-filter cleanup |
|||
# instance, in order to correctly process forwarded mail or bounced |
|||
# mail. |
|||
# |
|||
pre-cleanup unix n - n - 0 cleanup |
|||
-o canonical_maps= |
|||
-o sender_canonical_maps= |
|||
-o recipient_canonical_maps= |
|||
-o masquerade_domains= |
|||
-o virtual_alias_maps= |
|||
# |
|||
# ------------------------------------------------------------------ |
|||
# |
|||
# This is the delivery agent that injects mail into the content |
|||
# filter. It is tuned for low concurrency, because most content |
|||
# filters burn CPU and use lots of memory. The process limit of 10 |
|||
# re-enforces the effect of $default_destination_concurrency_limit. |
|||
# Even without an explicit process limit, the concurrency is bounded |
|||
# because all messages heading into the content filter have the same |
|||
# destination. |
|||
# |
|||
scan unix - - n - 10 smtp |
|||
# |
|||
# ------------------------------------------------------------------ |
|||
# |
|||
# This is the SMTP listener that receives filtered messages from |
|||
# the content filter. It *MUST* clear the content_filter |
|||
# parameter to avoid loops, and use a different hostname to avoid |
|||
# triggering the Postfix SMTP loop detection code. |
|||
# |
|||
# This "smtpd" uses the normal cleanup service which is also used |
|||
# for bounces and for internally forwarded mail. |
|||
# |
|||
# The parameters from mynetworks onward disable all access |
|||
# control other than insisting on connections from one of the IP |
|||
# addresses of the host. This is typically overkill, but can |
|||
# reduce resource usage, if the default restrictions use lots of |
|||
# tables. |
|||
# |
|||
localhost:10026 inet n - n - - smtpd |
|||
-o content_filter= |
|||
-o myhostname=localhost.domain.tld |
|||
-o local_recipient_maps= |
|||
-o relay_recipient_maps= |
|||
-o mynetworks=127.0.0.0/8 |
|||
-o mynetworks_style=host |
|||
-o smtpd_restriction_classes= |
|||
-o smtpd_client_restrictions= |
|||
-o smtpd_helo_restrictions= |
|||
-o smtpd_sender_restrictions= |
|||
-o smtpd_recipient_restrictions=permit_mynetworks,reject |
|||
# |
|||
# Do not override main.cf settings here for virtual_alias_maps or |
|||
# virtual_mailbox_maps. This causes mail to be rejected with "User |
|||
# unknown in virtual (alias|mailbox) recipient table". |
|||
# |
|||
# ------------------------------------------------------------------ |
|||
# |
|||
# This is the normal cleanup daemon for use after content filtering. |
|||
# No header or body checks, because those have already been taken |
|||
# care of by the pre-cleanup service before the content filter. |
|||
# |
|||
# The normal cleanup instance does all the virtual alias and canonical |
|||
# address mapping that was disabled in the pre-cleanup instance before |
|||
# the content filter. This rewriting must be done even when you didn't |
|||
# disable address rewriting in the pre-cleanup instance, in order to |
|||
# correctly process bounces and locally forwarded mail. |
|||
# |
|||
cleanup unix n - n - 0 cleanup |
|||
-o header_checks= |
|||
-o mime_header_checks= |
|||
-o nested_header_checks= |
|||
-o body_checks= |
|||
# |
|||
# ------------------------------------------------------------------ |
|||
# |
|||
# The normal "smtp" delivery agent for contrast with "scan". |
|||
# |
|||
smtp unix - - n - - smtp |
|||
|
|||
The above example causes Postfix to add one content filtering record |
|||
to each incoming mail message, with content scan:localhost:10025. |
|||
You can use the same syntax as in the right-hand side of a Postfix |
|||
transport table. The content filtering records are added by the |
|||
smtpd and pickup servers. |
|||
|
|||
The "scan" transport is a dedicated instance of the "smtp" delivery |
|||
agent for injecting messages into the SMTP content filter. Using |
|||
a dedicated "smtp" transport allows one to tune it for the specific |
|||
task of delivering mail to a local content filter (low latency, |
|||
low concurrency, throughput dependent on predictably low latency). |
|||
|
|||
See the previous example for setting up the content filter with |
|||
the Postfix spawn service; you can of course use any server that |
|||
can be run stand-alone outside the Postfix environment. |
|||
|
|||
Filtering mail from outside users only |
|||
====================================== |
|||
|
|||
The easiest approach is to configure ONE Postfix instance with TWO |
|||
SMTP server addresses in master.cf: |
|||
|
|||
- One SMTP server address for inside users only that never invokes |
|||
content filtering. |
|||
|
|||
- One SMTP server address for outside users that always invokes |
|||
content filtering. |
|||
|
|||
/etc/postfix.master.cf: |
|||
# SMTP service for internal users only, no content filtering. |
|||
1.2.3.4:smtp inet n - n - - smtpd |
|||
-o smtpd_client_restrictions=permit_mynetworks,reject |
|||
127.0.0.1:smtp inet n - n - - smtpd |
|||
-o smtpd_client_restrictions=permit_mynetworks,reject |
|||
|
|||
# SMTP service for external users, with content filtering. |
|||
1.2.3.5:smtp inet n - n - - smtpd |
|||
-o content_filter=foo:bar |
|||
|
|||
Getting really nasty |
|||
==================== |
|||
|
|||
The above filtering configurations are static. Mail that follows |
|||
a given path is either always filtered or it is never filtered. As |
|||
of Postfix 2.0 you can also turn on content filtering on the fly. |
|||
The Postfix UCE features allow you to specify a filtering action |
|||
on the fly: |
|||
|
|||
FILTER foo:bar |
|||
|
|||
You can do this in smtpd access maps as well as the cleanup server's |
|||
header/body_checks. This feature must be used with great care: |
|||
you must disable all the UCE features in the after-filter smtpd |
|||
and cleanup daemons or else you will have a content filtering loop. |
|||
|
|||
Limitations: |
|||
|
|||
- There can be only one content filter action per message. |
|||
|
|||
- FILTER actions from smtpd access maps and header/body_checks take |
|||
precedence over filters specified with the main.cf content_filter |
|||
parameter. |
|||
|
|||
- Only the last FILTER action from smtpd access maps or from |
|||
header/body_checks takes effect. |
|||
|
|||
- The same content filter is applied to all the recipients of a |
|||
given message. |
|||
@ -0,0 +1,138 @@ |
|||
################################################## |
|||
# Virtual Vacation for Postfix Admin Release 2.x # |
|||
################################################## |
|||
# |
|||
# 2003 (c) High5! |
|||
# Created by: Mischa Peters <mischa at high5 dot net> |
|||
# |
|||
|
|||
REQUIRED! |
|||
--------- |
|||
You need to have the following installed to be able to use Virtual Vacation. |
|||
- Perl5 |
|||
- Perl DBI |
|||
|
|||
|
|||
About Virtual Vacation |
|||
---------------------- |
|||
Virual Vacation is today done with a local shell account that can receive |
|||
email. The email is then handled by a Perl script which sends the Vacation |
|||
message back to the sender. |
|||
|
|||
|
|||
Install Virtual Vacation |
|||
------------------------ |
|||
|
|||
|
|||
1. Create a local account |
|||
------------------------- |
|||
Create a dedicated local user account called "vacation". |
|||
This user handles all potentially dangerous mail content - that is why it |
|||
should be a separate account. |
|||
|
|||
Do not use "nobody", and most certainly do not use "root" or "postfix". The |
|||
user will never log in, and can be given a "*" password and non-existent |
|||
shell and home directory. |
|||
|
|||
This should look like this: |
|||
|
|||
#/etc/passwd |
|||
vacation:*:65501:65501::0:0:Virtual Vacation:/nonexistent:/sbin/nologin |
|||
|
|||
|
|||
2. Create a directory |
|||
--------------------- |
|||
Create a directory, for example /var/spool/vacation, that is accessible |
|||
only to the "vacation" user. This is where the content filtering script is |
|||
supposed to store its temporary files. |
|||
|
|||
|
|||
3. Define the filter |
|||
-------------------- |
|||
Define the content filter in the Postfix master file: |
|||
|
|||
#/etc/postfix/master.cf: |
|||
filter unix - n n - - pipe |
|||
flags=Rq user=filter argv=/somewhere/filter -f ${sender} -- ${recipient} |
|||
|
|||
To turn on content filtering for mail arriving via SMTP only, append |
|||
"-o content_filter=filter:dummy" to the master.cf entry that defines |
|||
the Postfix SMTP server: |
|||
|
|||
#/etc/postfix/master.cf: |
|||
smtp inet ...stuff... smtpd |
|||
-o content_filter=filter:dummy |
|||
|
|||
The content_filter configuration parameter accepts the same syntax as the |
|||
right-hand side in a Postfix transport table. |
|||
|
|||
Execute "postfix reload" to complete the change. |
|||
|
|||
For more information on filtering in Postfix read the FILTER_README. |
|||
|
|||
4. Copy the files |
|||
----------------- |
|||
|
|||
$ cp mail-filter <HOME>/mail-filter |
|||
$ cp vacation.pl <HOME>/vacation.pl |
|||
$ chown -R vacation:nogroup <HOME> |
|||
|
|||
Which will then look something like: |
|||
|
|||
-rwx------ 1 vacation nogroup 409 Dec 21 00:00 mail-filter* |
|||
-rwx------ 1 vacation nogroup 3356 Dec 21 00:00 vacation.pl* |
|||
|
|||
|
|||
5. Create the table |
|||
------------------- |
|||
|
|||
To use Virtual Vacation with Postfix Admin you need to create an extra table |
|||
in the database that is used by Postfix Admin. |
|||
|
|||
USE postfix; |
|||
# |
|||
# Table structure for table vacation |
|||
# |
|||
CREATE TABLE vacation ( |
|||
email varchar(255) NOT NULL default '', |
|||
subject varchar(255) NOT NULL default '', |
|||
body text NOT NULL, |
|||
cache text NOT NULL, |
|||
domain varchar(255) NOT NULL default '', |
|||
created datetime NOT NULL default '0000-00-00 00:00:00', |
|||
active tinyint(4) NOT NULL default '1', |
|||
PRIMARY KEY (email), |
|||
KEY email (email) |
|||
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation'; |
|||
|
|||
|
|||
What do these files do? |
|||
----------------------- |
|||
mail-filter picks up every single email and pushes it towards the |
|||
vacation.pl |
|||
|
|||
vacation.pl then checks the database to see wether a user is on holiday and |
|||
what message to send back. Make sure that vacation.pl is able to communicate |
|||
to your databse. In the first couple of lines you have to specify the |
|||
database, username and password for it. |
|||
|
|||
NOTE: In mail-filter make sure that the path to the vacation usrer and |
|||
sendmail are correct! |
|||
|
|||
In vacation.pl make sure that the path to sendmail is correct and that |
|||
database information is correct! |
|||
|
|||
|
|||
I'm in trouble! |
|||
--------------- |
|||
When something is not working there are a couple of files that you can have |
|||
a look at. The most important one is your maillog (usually in /var/log/). |
|||
|
|||
Vacation.pl also has some debugging and logging capabilties. Check the top |
|||
of vacation.pl. |
|||
|
|||
|
|||
Done! |
|||
----- |
|||
When this is all in place you need to have a look at the Postfix Admin |
|||
config.inc.php. Here you need to enable Virtual Vacation for the site. |
|||
@ -0,0 +1,17 @@ |
|||
#!/bin/sh |
|||
FILTER_DIR=/home/vacation |
|||
SENDMAIL="/usr/sbin/sendmail -i" |
|||
EX_TEMPFAIL=75 |
|||
EX_UNAVAILABLE=69 |
|||
|
|||
trap "rm -rf in.$$" 0 1 2 3 15 |
|||
|
|||
cd $FILTER_DIR || { echo $FILTER_DIR does not exist; exit $EX_TEMPFAIL; } |
|||
|
|||
cat > in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; } |
|||
|
|||
/home/vacation/vacation.pl < in.$$ || { echo Message content rejected; exit $EX_UNAVAILABLE; } |
|||
|
|||
$SENDMAIL "$@" < in.$$ |
|||
|
|||
exit $? |
|||
@ -0,0 +1,107 @@ |
|||
#!/usr/bin/perl -w |
|||
# |
|||
# Virtual Vacation |
|||
# Version 2.5 |
|||
# 2003 (c) High5! |
|||
# Created by: Mischa Peters <mischa at high5 dot net> |
|||
# |
|||
use DBI; |
|||
|
|||
$db_name = "postfix"; |
|||
$db_user = "postfixadmin"; |
|||
$db_pass = "postfixadmin"; |
|||
$sendmail = "/usr/sbin/sendmail"; |
|||
$logfile = ""; # specify a file name here for example: vacation.log |
|||
$debugfile = ""; # sepcify a file name here for example: vacation.debug |
|||
|
|||
@input = <>; |
|||
|
|||
for ($i = 0; $i <= $#input; $i++) { |
|||
if ($input[$i] =~ /^From: (.*)\n$/) { $from = lc($1); } |
|||
if ($input[$i] =~ /^To: (.*)\n$/) { $to = lc($1); } |
|||
if ($input[$i] =~ /^Cc: (.*)\n$/) { $cc = lc($1); } |
|||
if ($input[$i] =~ /^Subject: (.*)\n$/) { $subject = $1; } |
|||
} |
|||
|
|||
$dbh = DBI->connect("DBI:mysql:$db_name", "$db_user", "$db_pass", { RaiseError => 1}); |
|||
sub do_query { |
|||
my ($query) = @_; |
|||
my $sth = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstr\n"; |
|||
$sth->execute or die "Can't execute the query: $sth->errstr"; |
|||
$sth; |
|||
} |
|||
|
|||
sub do_debug { |
|||
my ($to, $from, $subject, $row0, $row1) = @_; |
|||
open (DEBUG, ">> $debugfile") or die ("Unable to open debug file"); |
|||
chop ($date = `date "+%Y/%m/%d %H:%M:%S"`); |
|||
print DEBUG "====== $date ======\n"; |
|||
print DEBUG "$to - $from - $subject\n"; |
|||
print DEBUG "Out of Office Subject: $row0\n"; |
|||
print DEBUG "Out of Office Body:\n$row1\n\n"; |
|||
close (DEBUG); |
|||
} |
|||
|
|||
sub do_cache { |
|||
my ($to, $from, $cache) = @_; |
|||
$query = qq{SELECT cache FROM vacation WHERE email='$to' AND FIND_IN_SET('$from',cache)}; |
|||
$sth = do_query ($query); |
|||
$rv = $sth->rows; |
|||
if ($rv == 0) { |
|||
$query = qq{UPDATE vacation SET cache=CONCAT(cache,',','$from') WHERE email='$to'}; |
|||
$sth = do_query ($query); |
|||
} |
|||
return $rv; |
|||
} |
|||
|
|||
sub do_mail { |
|||
my ($to, $from, $subject, $body) = @_; |
|||
open (MAIL, "| $sendmail -t -f $to") or die ("Unable to open sendmail"); |
|||
print MAIL "From: $to\n"; |
|||
print MAIL "To: $from\n"; |
|||
print MAIL "Subject: $subject\n"; |
|||
print MAIL "X-Loop: Postfix Vacation\n\n"; |
|||
print MAIL "$body"; |
|||
close (MAIL); |
|||
} |
|||
|
|||
sub do_log { |
|||
my ($to, $from, $subject) = @_; |
|||
open (LOG, ">> $logfile") or die ("Unable to open log file"); |
|||
chop ($date = `date "+%Y/%m/%d %H:%M:%S"`); |
|||
print LOG "$date: $to - $from - $subject\n"; |
|||
close (LOG); |
|||
} |
|||
|
|||
@strip_to_array = split(/,/, $to); |
|||
if (defined $cc) { @strip_cc_array = split(/,/, $cc); } |
|||
push (@strip_to_array, @strip_cc_array); |
|||
|
|||
foreach $strip_element (@strip_to_array) { |
|||
if ($strip_element =~ /(\S*@\S*)/) { $strip_element = $1; } |
|||
if ($strip_element =~ /\<(.*)\>/) { $strip_element = $1; } |
|||
push (@search_array, $strip_element); |
|||
} |
|||
|
|||
foreach $search_element (@search_array) { |
|||
$query = qq{SELECT email FROM vacation WHERE email='$search_element'}; |
|||
$sth = do_query ($query); |
|||
$rv = $sth->rows; |
|||
if ($rv == 1) { |
|||
push (@found_array, $search_element); |
|||
} |
|||
} |
|||
|
|||
foreach $found_element (@found_array) { |
|||
$query = qq{SELECT subject,body FROM vacation WHERE email='$found_element'}; |
|||
$sth = do_query ($query); |
|||
$rv = $sth->rows; |
|||
if ($rv == 1) { |
|||
@row = $sth->fetchrow_array; |
|||
if ($debugfile) { do_debug ($found_element, $from, $subject, $row[0], $row[1]); } |
|||
if (do_cache ($found_element, $from, $row[2])) { next; } |
|||
do_mail ($found_element, $from, $row[0], $row[1]); |
|||
if ($logfile) { do_log ($found_element, $from, $subject); } |
|||
} |
|||
} |
|||
1; |
|||
@ -0,0 +1,8 @@ |
|||
AuthUserFile /usr/local/www/<domain.tld>/admin/.htpasswd |
|||
AuthGroupFile /dev/null |
|||
AuthName "Postfix Admin" |
|||
AuthType Basic |
|||
|
|||
<limit GET POST> |
|||
require valid-user |
|||
</limit> |
|||
@ -0,0 +1 @@ |
|||
admin:$apr1$5ip4S/..$cmAmYFlZa1gLHGwFFw2.G0 |
|||
@ -0,0 +1,81 @@ |
|||
<?php |
|||
//
|
|||
// File: backup.php
|
|||
//
|
|||
// Template File: -none-
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$path = "/tmp/"; |
|||
$filename = "postfixadmin-" . date ("Ymd") . ".sql"; |
|||
$backup = $path . $filename; |
|||
|
|||
$header = "#\n# Postfix Admin $version\n# Date: " . date ("D M j G:i:s T Y") . "\n#\n"; |
|||
|
|||
if (!$fh = fopen ($backup, 'w')) |
|||
{ |
|||
$tMessage = "<font color=\"red\">Cannot open file ($backup)</font>"; |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/delete.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
else |
|||
{ |
|||
fwrite ($fh, $header); |
|||
|
|||
$tables = array('admin','alias','domain','domain_admins','log','mailbox','vacation'); |
|||
|
|||
for ($i = 0 ; $i < sizeof ($tables) ; ++$i) |
|||
{ |
|||
$result = db_query ("SHOW CREATE TABLE $tables[$i]"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
fwrite ($fh, "$row[1]\n\n"); |
|||
} |
|||
} |
|||
} |
|||
|
|||
for ($i = 0 ; $i < sizeof ($tables) ; ++$i) |
|||
{ |
|||
$result = db_query ("SELECT * FROM $tables[$i]"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_assoc ($result['result'])) |
|||
{ |
|||
foreach ($row as $key=>$val) |
|||
{ |
|||
$fields[] = $key; |
|||
$values[] = $val; |
|||
} |
|||
|
|||
fwrite ($fh, "INSERT INTO ". $tables[$i] . " (". implode (',',$fields) . ") VALUES ('" . implode ('\',\'',$values) . "')\n"); |
|||
$fields = ""; |
|||
$values = ""; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
header ("Content-Type: application/octet-stream"); |
|||
header ("Content-Disposition: attachment; filename=\"$filename\"");
|
|||
header ("Content-Transfer-Encoding: binary"); |
|||
header ("Content-Length: " . filesize("$backup")); |
|||
header ("Content-Description: Postfix Admin"); |
|||
$download_backup = fopen ("$backup", "r"); |
|||
fpassthru ($download_backup); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,99 @@ |
|||
<?php |
|||
//
|
|||
// File: create-admin.php
|
|||
//
|
|||
// Template File: admin_create-admin.tpl
|
|||
//
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tUsername
|
|||
// tDomains
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
// fPassword
|
|||
// fPassword2
|
|||
// fDomains
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$list_domains = list_domains (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$pAdminCreate_admin_username_text = $PALANG['pAdminCreate_admin_username_text']; |
|||
$tDomains[] = ""; |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_create-admin.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fUsername = $_POST['fUsername']; |
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
$fDomains = $_POST['fDomains']; |
|||
|
|||
if (!check_email ($fUsername)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tDomains = $_POST['fDomains']; |
|||
$pAdminCreate_admin_username_text = $PALANG['pAdminCreate_admin_username_text_error1']; |
|||
} |
|||
|
|||
if (empty ($fUsername) or admin_exist ($fUsername)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tDomains = $_POST['fDomains']; |
|||
$pAdminCreate_admin_username_text = $PALANG['pAdminCreate_admin_username_text_error2']; |
|||
} |
|||
|
|||
if (empty ($fPassword) or ($fPassword != $fPassword2)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tDomains = $_POST['fDomains']; |
|||
$pAdminCreate_admin_username_text = $PALANG['pAdminCreate_admin_username_text']; |
|||
$pAdminCreate_admin_password_text = $PALANG['pAdminCreate_admin_password_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$password = md5crypt("$fPassword"); |
|||
|
|||
$result = db_query ("INSERT INTO admin (username,password,created,modified) VALUES ('$fUsername','$password',NOW(),NOW())"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tMessage = $PALANG['pAdminCreate_admin_result_error'] . "<br />($fUsername)<br />"; |
|||
} |
|||
else |
|||
{ |
|||
if (sizeof ($fDomains) > 0) |
|||
{ |
|||
for ($i = 0; $i < sizeof ($fDomains); $i++) |
|||
{ |
|||
$domain = $fDomains[$i]; |
|||
$result = db_query ("INSERT INTO domain_admins (username,domain,created) VALUES ('$fUsername','$domain',NOW())"); |
|||
} |
|||
} |
|||
$tMessage = $PALANG['pAdminCreate_admin_result_succes'] . "<br />($fUsername)</br />"; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_create-admin.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,113 @@ |
|||
<?php |
|||
//
|
|||
// File: create-alias.php
|
|||
//
|
|||
// Template File: create-alias.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tAddress
|
|||
// tGoto
|
|||
// tDomain
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fAddress
|
|||
// fGoto
|
|||
// fDomain
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$list_domains = list_domains (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$pCreate_alias_goto_text = $PALANG['pCreate_alias_goto_text']; |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/create-alias.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pCreate_alias_goto_text = $PALANG['pCreate_alias_goto_text']; |
|||
|
|||
$fAddress = $_POST['fAddress'] . "@" . $_POST['fDomain']; |
|||
$fGoto = $_POST['fGoto']; |
|||
$fDomain = $_POST['fDomain']; |
|||
|
|||
if (!preg_match ('/@/',$fGoto)) |
|||
{ |
|||
$fGoto = $fGoto . "@" . $_POST['fDomain']; |
|||
} |
|||
|
|||
if (!check_alias ($fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error3']; |
|||
} |
|||
|
|||
if (empty ($fAddress) or !check_email ($fAddress)) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error1']; |
|||
} |
|||
|
|||
if (empty ($fGoto) or !check_email ($fGoto)) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_goto_text = $PALANG['pCreate_alias_goto_text_error']; |
|||
} |
|||
|
|||
if ($_POST['fAddress'] == "*") $fAddress = "@" . $_POST['fDomain']; |
|||
|
|||
$result = db_query ("SELECT * FROM alias WHERE address='$fAddress'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error2']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
if (preg_match ('/^\*@(.*)$/', $fGoto, $match)) $fGoto = "@" . $match[1]; |
|||
|
|||
$result = db_query ("INSERT INTO alias (address,goto,domain,created,modified) VALUES ('$fAddress','$fGoto','$fDomain',NOW(),NOW())"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pCreate_alias_result_error'] . "<br />($fAddress -> $fGoto)<br />"; |
|||
} |
|||
else |
|||
{ |
|||
db_log ("site admin", $fDomain, "create alias", "$fAddress -> $fGoto"); |
|||
|
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pCreate_alias_result_succes'] . "<br />($fAddress -> $fGoto)</br />"; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/create-alias.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,94 @@ |
|||
<?php |
|||
//
|
|||
// File: create-domain.php
|
|||
//
|
|||
// Template File: admin_create-domain.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tDomain
|
|||
// tDescription
|
|||
// tAliases
|
|||
// tMailboxes
|
|||
// tMaxquota
|
|||
// tDefaultaliases
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDomain
|
|||
// fDescription
|
|||
// fAliases
|
|||
// fMailboxes
|
|||
// fMaxquota
|
|||
// fDefaultaliases
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$tAliases = $CONF['aliases']; |
|||
$tMailboxes = $CONF['mailboxes']; |
|||
$tMaxquota = $CONF['maxquota']; |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_create-domain.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fDomain = $_POST['fDomain']; |
|||
$fDescription = $_POST['fDescription']; |
|||
$fAliases = $_POST['fAliases']; |
|||
$fMailboxes = $_POST['fMailboxes']; |
|||
if (isset ($_POST['fMaxquota'])) $fMaxquota = $_POST['fMaxquota']; |
|||
if (isset ($_POST['fDefaultaliases'])) $fDefaultaliases = $_POST['fDefaultaliases']; |
|||
|
|||
if (empty ($fDomain) or domain_exist ($fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tDomain = $_POST['fDomain']; |
|||
$tDescription = $_POST['fDescription']; |
|||
$tAliases = $_POST['fAliases']; |
|||
$tMailboxes = $_POST['fMailboxes']; |
|||
$tMaxquota = $_POST['fMaxquota']; |
|||
$tDefaultaliases = $_POST['fDefaultaliases']; |
|||
$pAdminCreate_domain_domain_text = $PALANG['pAdminCreate_domain_domain_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$tAliases = $CONF['aliases']; |
|||
$tMailboxes = $CONF['mailboxes']; |
|||
$tMaxquota = $CONF['maxquota']; |
|||
|
|||
$result = db_query ("INSERT INTO domain (domain,description,aliases,mailboxes,maxquota,created,modified) VALUES ('$fDomain','$fDescription','$fAliases','$fMailboxes','$fMaxquota',NOW(),NOW())"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tMessage = $PALANG['pAdminCreate_domain_result_error'] . "<br />($fDomain)<br />"; |
|||
} |
|||
else |
|||
{ |
|||
if ($fDefaultaliases == "on") |
|||
{ |
|||
foreach ($CONF['default_aliases'] as $address=>$goto) |
|||
{ |
|||
$address = $address . "@" . $fDomain; |
|||
$result = db_query ("INSERT INTO alias (address,goto,domain,created,modified) VALUES ('$address','$goto','$fDomain',NOW(),NOW())"); |
|||
} |
|||
} |
|||
$tMessage = $PALANG['pAdminCreate_domain_result_succes'] . "<br />($fDomain)</br />"; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_create-domain.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,177 @@ |
|||
<?php |
|||
//
|
|||
// File: create-mailbox.php
|
|||
//
|
|||
// Template File: create-mailbox.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tUsername
|
|||
// tName
|
|||
// tQuota
|
|||
// tDomain
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
// fPassword
|
|||
// fPassword2
|
|||
// fName
|
|||
// fQuota
|
|||
// fDomain
|
|||
// fActive
|
|||
// fMail
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$list_domains = list_domains (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$tQuota = $CONF['maxquota']; |
|||
|
|||
$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text']; |
|||
$pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text']; |
|||
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text']; |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/create-mailbox.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text']; |
|||
$pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text']; |
|||
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text']; |
|||
|
|||
$fUsername = $_POST['fUsername'] . "@" . $_POST['fDomain']; |
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
$fName = $_POST['fName']; |
|||
$fDomain = $_POST['fDomain']; |
|||
if (isset ( $_POST['fQuota'])) $fQuota = $_POST['fQuota']; |
|||
if (isset ( $_POST['fActive'])) $fActive = $_POST['fActive']; |
|||
if (isset ( $_POST['fMail'])) $fMail = $_POST['fMail']; |
|||
|
|||
if (!check_mailbox ($fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error3']; |
|||
} |
|||
|
|||
if (empty ($fUsername) or !check_email ($fUsername)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1']; |
|||
} |
|||
|
|||
if (empty ($fPassword) or ($fPassword != $fPassword2)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text_error']; |
|||
} |
|||
|
|||
if (!check_quota ($fQuota, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text_error']; |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM alias WHERE address='$fUsername'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error2']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$password = pacrypt ($fPassword); |
|||
|
|||
if ($CONF['domain_path'] == "YES") |
|||
{ |
|||
if ($CONF['domain_in_mailbox'] == "YES") |
|||
{ |
|||
$maildir = $fDomain . "/" . $fUsername . "/"; |
|||
} |
|||
else |
|||
{ |
|||
$maildir = $fDomain . "/" . $_POST['fUsername'] . "/"; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$maildir = $fUsername . "/"; |
|||
} |
|||
|
|||
if (!empty ($fQuota)) $quota = $fQuota . "000000"; |
|||
if ($fActive == "on") $fActive = 1; |
|||
|
|||
$result = db_query ("INSERT INTO alias (address,goto,domain,created,modified,active) VALUES ('$fUsername','$fUsername','$fDomain',NOW(),NOW(),'$fActive')"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pAlias_result_error'] . "<br />($fUsername -> $fUsername)</br />"; |
|||
} |
|||
|
|||
$result = db_query ("INSERT INTO mailbox (username,password,name,maildir,quota,domain,created,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$quota','$fDomain',NOW(),NOW(),'$fActive')"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tDomain = $fDomain; |
|||
$tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />"; |
|||
} |
|||
else |
|||
{ |
|||
|
|||
db_log ("site admin", $fDomain, "create mailbox", "$fUsername"); |
|||
|
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pCreate_mailbox_result_succes'] . "<br />($fUsername)</br />"; |
|||
$tQuota = $CONF['maxquota']; |
|||
|
|||
if ($fMail == "on") { |
|||
if (!mail ($fUsername, $PALANG['pSendmail_subject_text'], $PALANG['pSendmail_body_text'], "From:" . "Site Admin")) |
|||
{ |
|||
$tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />"; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage .= "<br />" . $PALANG['pSendmail_result_succes'] . "<br />"; |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/create-mailbox.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,121 @@ |
|||
<?php |
|||
//
|
|||
// File: delete.php
|
|||
//
|
|||
// Template File: delete.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fTable
|
|||
// fWhere
|
|||
// fDelete
|
|||
// fDomain
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
if (isset ($_GET['table'])) $fTable = $_GET['table']; |
|||
if (isset ($_GET['where'])) $fWhere = $_GET['where']; |
|||
if (isset ($_GET['delete'])) $fDelete = $_GET['delete']; |
|||
if (isset ($_GET['domain'])) $fDomain = $_GET['domain']; |
|||
|
|||
if (empty ($fTable)) |
|||
{ |
|||
$error = 1; |
|||
} |
|||
|
|||
if ($fTable == "domain") |
|||
{ |
|||
$result_domain = db_delete ("domain",$fWhere,$fDelete); |
|||
$result_domain_admins = db_delete ("domain_admins",$fWhere,$fDelete); |
|||
$result_alias = db_delete ("alias",$fWhere,$fDelete); |
|||
$result_mailbox = db_delete ("mailbox",$fWhere,$fDelete); |
|||
$result_log = db_delete ("log",$fWhere,$fDelete); |
|||
$result_vacation = db_delete ("vacation",$fWhere,$fDelete); |
|||
|
|||
if (!($result_domain == 1) and ($result_domain_admins >= 0) and ($result_alias >= 0) and ($result_mailbox >= 0) and ($result_vacation >= 0)) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pAdminDelete_domain_error']; |
|||
} |
|||
else |
|||
{ |
|||
$url = "list-domain.php"; |
|||
} |
|||
} |
|||
|
|||
if ($fTable == "admin") |
|||
{ |
|||
$result_admin = db_delete ("admin",$fWhere,$fDelete); |
|||
$result_domain_admins = db_delete ("domain_admins",$fWhere,$fDelete); |
|||
|
|||
if (!($result_admin == 1) and ($result_domain_admins >= 0)) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pAdminDelete_admin_error']; |
|||
} |
|||
else |
|||
{ |
|||
$url = "list-admin.php"; |
|||
} |
|||
} |
|||
|
|||
if ($fTable == "alias" or $fTable == "mailbox") |
|||
{ |
|||
$result = db_query ("DELETE FROM alias WHERE address='$fDelete' AND domain='$fDomain'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pDelete_delete_error'] . "<b>$fDelete</b> (alias)!</font>"; |
|||
} |
|||
else |
|||
{ |
|||
$url = "list-virtual.php?domain=$fDomain"; |
|||
db_log ("site admin", $fDomain, "delete alias", $fDelete); |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE username='$fDelete' AND domain='$fDomain'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$result = db_query ("DELETE FROM mailbox WHERE username='$fDelete' AND domain='$fDomain'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pDelete_delete_error'] . "<b>$fDelete</b> (mailbox)!</font>"; |
|||
} |
|||
else |
|||
{ |
|||
$url = "list-virtual.php?domain=$fDomain"; |
|||
db_log ("site admin", $fDomain, "delete mailbox", $fDelete); |
|||
} |
|||
} |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
header ("Location: $url"); |
|||
exit; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/delete.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/menu.tpl"); |
|||
include ("../templates/delete.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,115 @@ |
|||
<?php |
|||
//
|
|||
// File: edit-admin.php
|
|||
//
|
|||
// Template File: admin_edit-admin.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tDescription
|
|||
// tAliases
|
|||
// tMailboxes
|
|||
// tMaxquota
|
|||
// tActive
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDescription
|
|||
// fAliases
|
|||
// fMailboxes
|
|||
// fMaxquota
|
|||
// fActive
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$username = $_GET['username']; |
|||
|
|||
$list_domains = list_domains (); |
|||
$tDomains = list_domains_for_admin ($username); |
|||
|
|||
$result = db_query ("SELECT * FROM admin WHERE username='$username'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$tActive = $row['active']; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_edit-admin.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$username = $_GET['username']; |
|||
|
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
$fActive = $_POST['fActive']; |
|||
$fDomains = $_POST['fDomains']; |
|||
|
|||
$list_domains = list_domains (); |
|||
|
|||
if ($fPassword != $fPassword2) |
|||
{ |
|||
$error = 1; |
|||
$tActive = $_POST['fActive']; |
|||
$tDomains = $_POST['fDomains']; |
|||
$pAdminEdit_admin_password_text = $PALANG['pAdminEdit_admin_password_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
|
|||
if (empty ($fPassword) and empty ($fPassword2)) |
|||
{ |
|||
if ($fActive == "on") $fActive = 1; |
|||
$result = db_query ("UPDATE admin SET modified=NOW(),active='$fActive' WHERE username='$username'"); |
|||
} |
|||
else |
|||
{ |
|||
$password = md5crypt ($fPassword); |
|||
if ($fActive == "on") $fActive = 1; |
|||
$result = db_query ("UPDATE admin SET password='$password',modified=NOW(),active='$fActive' WHERE username='$username'"); |
|||
} |
|||
|
|||
if (sizeof ($fDomains) > 0) |
|||
{ |
|||
for ($i = 0; $i < sizeof ($fDomains); $i++) |
|||
{ |
|||
$domain = $fDomains[$i]; |
|||
$result_domains = db_query ("INSERT INTO domain_admins (username,domain,created) VALUES ('$username','$domain',NOW())"); |
|||
} |
|||
} |
|||
|
|||
if ($result['rows'] == 1) |
|||
{ |
|||
if (sizeof ($fDomains) > 0) |
|||
{ |
|||
$result = db_query ("DELETE FROM domain_admins WHERE username='$username'"); |
|||
for ($i = 0; $i < sizeof ($fDomains); $i++) |
|||
{ |
|||
$domain = $fDomains[$i]; |
|||
$result = db_query ("INSERT INTO domain_admins (username,domain,created) VALUES ('$username','$domain',NOW())"); |
|||
} |
|||
} |
|||
header ("Location: list-admin.php"); |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pAdminEdit_admin_result_error']; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_edit-admin.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,98 @@ |
|||
<?php |
|||
//
|
|||
// File: edit-alias.php
|
|||
//
|
|||
// Template File: edit-alias.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tGoto
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fAddress
|
|||
// fDomain
|
|||
// fGoto
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$fAddress = $_GET['address']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
$result = db_query ("SELECT * FROM alias WHERE address='$fAddress' AND domain='$fDomain'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$tGoto = $row['goto']; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pEdit_alias_address_error']; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/edit-alias.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pEdit_alias_goto = $PALANG['pEdit_alias_goto']; |
|||
|
|||
$fAddress = $_GET['address']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
$fGoto = $_POST['fGoto']; |
|||
|
|||
if (empty ($fGoto)) |
|||
{ |
|||
$error = 1; |
|||
$tGoto = $fGoto; |
|||
$tMessage = $PALANG['pEdit_alias_goto_text_error1']; |
|||
} |
|||
|
|||
$goto = preg_replace ('/\r\n/', ',', $fGoto); |
|||
$goto = preg_replace ('/[\s]+/i', '', $goto); |
|||
$goto = preg_replace ('/\,*$/', '', $goto); |
|||
$array = preg_split ('/,/', $goto); |
|||
|
|||
for ($i = 0; $i < sizeof ($array); $i++) { |
|||
if (in_array ("$array[$i]", $CONF['default_aliases'])) continue; |
|||
if (empty ($array[$i])) continue; |
|||
if (!check_email ($array[$i])) |
|||
{ |
|||
$error = 1; |
|||
$tGoto = $goto; |
|||
$tMessage = $PALANG['pEdit_alias_goto_text_error2'] . "$array[$i]</font>"; |
|||
} |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$result = db_query ("UPDATE alias SET goto='$goto',modified=NOW() WHERE address='$fAddress' AND domain='$fDomain'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tMessage = $PALANG['pEdit_alias_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
db_log ("site admin", $fDomain, "edit alias", "$fAddress -> $goto"); |
|||
|
|||
header ("Location: list-virtual.php?domain=$fDomain"); |
|||
exit; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/edit-alias.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,72 @@ |
|||
<?php |
|||
//
|
|||
// File: edit-domain.php
|
|||
//
|
|||
// Template File: admin_edit-domain.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tDescription
|
|||
// tAliases
|
|||
// tMailboxes
|
|||
// tMaxquota
|
|||
// tActive
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDescription
|
|||
// fAliases
|
|||
// fMailboxes
|
|||
// fMaxquota
|
|||
// fActive
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$domain = $_GET['domain']; |
|||
$domain_properties = get_domain_properties ($domain); |
|||
|
|||
$tDescription = $domain_properties['description']; |
|||
$tAliases = $domain_properties['aliases']; |
|||
$tMailboxes = $domain_properties['mailboxes']; |
|||
$tMaxquota = $domain_properties['maxquota']; |
|||
$tActive = $domain_properties['active']; |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_edit-domain.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$domain = $_GET['domain']; |
|||
|
|||
$fDescription = $_POST['fDescription']; |
|||
$fAliases = $_POST['fAliases']; |
|||
$fMailboxes = $_POST['fMailboxes']; |
|||
$fMaxquota = $_POST['fMaxquota']; |
|||
$fActive = $_POST['fActive']; |
|||
|
|||
if ($fActive == "on") $fActive = 1; |
|||
|
|||
$result = db_query ("UPDATE domain SET description='$fDescription',aliases='$fAliases',mailboxes='$fMailboxes',maxquota='$fMaxquota',active='$fActive',modified=NOW() WHERE domain='$domain'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
header ("Location: list-domain.php"); |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pAdminEdit_domain_result_error']; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_edit-domain.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,115 @@ |
|||
<?php |
|||
//
|
|||
// File: edit-mailbox.php
|
|||
//
|
|||
// Template File: edit-mailbox.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tName
|
|||
// tQuota
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
// fDomain
|
|||
// fPassword
|
|||
// fPassword2
|
|||
// fName
|
|||
// fQuota
|
|||
// fActive
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$fUsername = $_GET['username']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE username='$fUsername' AND domain='$fDomain'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$tName = $row['name']; |
|||
$tQuota = substr ($row['quota'], 0, -6); |
|||
$tActive = $row['active']; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pEdit_mailbox_login_error']; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/edit-mailbox.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pEdit_mailbox_password_text = $PALANG['pEdit_mailbox_password_text_error']; |
|||
$pEdit_mailbox_quota_text = $PALANG['pEdit_mailbox_quota_text']; |
|||
|
|||
$fUsername = $_GET['username']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
$fName = $_POST['fName']; |
|||
if (isset ($_POST['fQuota'])) $fQuota = $_POST['fQuota']; |
|||
if (isset ($_POST['fActive'])) $fActive = $_POST['fActive']; |
|||
|
|||
if ($fPassword != $fPassword2) |
|||
{ |
|||
$error = 1; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$pEdit_mailbox_password_text = $PALANG['pEdit_mailbox_password_text_error']; |
|||
} |
|||
|
|||
if (!check_quota ($fQuota, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$pEdit_mailbox_quota_text = $PALANG['pEdit_mailbox_quota_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
if (!empty ($fQuota)) $quota = $fQuota . "000000"; |
|||
if ($fActive == "on") $fActive = 1; |
|||
|
|||
if (empty ($fPassword) and empty ($fPassword2)) |
|||
{ |
|||
$result = db_query ("UPDATE mailbox SET name='$fName',quota='$quota',modified=NOW(),active='$fActive' WHERE username='$fUsername' AND domain='$fDomain'"); |
|||
} |
|||
else |
|||
{ |
|||
$password = md5crypt ($fPassword); |
|||
$result = db_query ("UPDATE mailbox SET password='$password',name='$fName',quota='$quota',modified=NOW(),active='$fActive' WHERE username='$fUsername' AND domain='$fDomain'"); |
|||
} |
|||
|
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tMessage = $PALANG['pEdit_mailbox_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
db_log ("site admin", $fDomain, "edit mailbox", $fUsername); |
|||
|
|||
header ("Location: list-virtual.php?domain=$fDomain"); |
|||
exit; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/edit-mailbox.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,3 @@ |
|||
<?php |
|||
header ("Location: list-admin.php"); |
|||
?>
|
|||
@ -0,0 +1,41 @@ |
|||
<?php |
|||
//
|
|||
// File: list-admin.php
|
|||
//
|
|||
// Template File: list-admin.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$list_admins = list_admins (); |
|||
for ($i = 0; $i < sizeof ($list_admins); $i++) |
|||
{ |
|||
$admin_properties[$i] = get_admin_properties ($list_admins[$i]); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_list-admin.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_list-admin.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,64 @@ |
|||
<?php |
|||
//
|
|||
// File: list-domain.php
|
|||
//
|
|||
// Template File: admin_list-domain.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$list_admins = list_admins (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
if (isset ($_GET['username'])) |
|||
{ |
|||
$fUsername = $_GET['username']; |
|||
|
|||
$list_domains = list_domains_for_admin ($fUsername); |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
$domain_properties[$i] = get_domain_properties ($list_domains[$i]); |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$list_domains = list_domains (); |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
$domain_properties[$i] = get_domain_properties ($list_domains[$i]); |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_list-domain.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fUsername = $_POST['fUsername']; |
|||
|
|||
$list_domains = list_domains_for_admin ($fUsername); |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
$domain_properties[$i] = get_domain_properties ($list_domains[$i]); |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_list-domain.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,105 @@ |
|||
<?php |
|||
//
|
|||
// File: list-virtual.php
|
|||
//
|
|||
// Template File: admin_list-virtual.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tAlias
|
|||
// tMailbox
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDomain
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$list_domains = list_domains (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
if (isset ($_GET['domain'])) $fDomain = $_GET['domain']; |
|||
|
|||
if (empty ($fDomain)) $fDomain = $list_domains[0]; |
|||
|
|||
$limit = get_domain_properties ($fDomain); |
|||
|
|||
if (empty ($fDomain)) $fDomain = $list_domains[1]; |
|||
|
|||
if ($CONF['alias_control'] == "YES") |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias WHERE alias.domain='$fDomain' ORDER BY alias.address"; |
|||
} |
|||
else |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias LEFT JOIN mailbox ON alias.address=mailbox.username WHERE alias.domain='$fDomain' AND mailbox.maildir IS NULL ORDER BY alias.address"; |
|||
} |
|||
|
|||
$result = db_query ("$query"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tAlias[] = $row; |
|||
} |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE domain='$fDomain' ORDER BY username"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tMailbox[] = $row; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_list-virtual.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fDomain = $_POST['fDomain']; |
|||
|
|||
$limit = get_domain_properties ($fDomain); |
|||
|
|||
if ($CONF['alias_control'] == "YES") |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias WHERE alias.domain='$fDomain' ORDER BY alias.address"; |
|||
} |
|||
else |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias LEFT JOIN mailbox ON alias.address=mailbox.username WHERE alias.domain='$fDomain' AND mailbox.maildir IS NULL ORDER BY alias.address"; |
|||
} |
|||
|
|||
$result = db_query ("$query"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tAlias[] = $row; |
|||
} |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE domain='$fDomain' ORDER BY username"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tMailbox[] = $row; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/admin_list-virtual.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,63 @@ |
|||
<?php |
|||
//
|
|||
// File: viewlog.php
|
|||
//
|
|||
// Template File: viewlog.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tLog
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDomain
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$list_domains = list_domains (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$fDomain = $list_domains[0]; |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$result = db_query ("SELECT * FROM log WHERE domain='$fDomain' ORDER BY timestamp DESC LIMIT 10"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tLog[] = $row; |
|||
} |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/viewlog.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fDomain = $_POST['fDomain']; |
|||
|
|||
$result = db_query ("SELECT * FROM log WHERE domain='$fDomain' ORDER BY timestamp DESC LIMIT 10"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tLog[] = $row; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/admin_menu.tpl"); |
|||
include ("../templates/viewlog.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,83 @@ |
|||
<?php |
|||
// |
|||
// File: config.inc.php |
|||
// |
|||
if (ereg ("config.inc.php", $_SERVER['PHP_SELF'])) |
|||
{ |
|||
header ("Location: login.php"); |
|||
exit; |
|||
} |
|||
|
|||
// Language config |
|||
// Language files are located in './languages'. |
|||
$CONF['language'] = 'en'; |
|||
|
|||
// Database Config |
|||
// 'database_type' is for future reference. |
|||
$CONF['database_type'] = 'mysql'; |
|||
$CONF['database_host'] = 'localhost'; |
|||
$CONF['database_user'] = 'postfixadmin'; |
|||
$CONF['database_password'] = 'postfixadmin'; |
|||
$CONF['database_name'] = 'postfix'; |
|||
|
|||
// Encrypt |
|||
// In what way do you want the passwords to be crypted? |
|||
// md5crypt = internal postfix admin md5 |
|||
// system = whatever you have set as your PHP system default |
|||
// cleartext = clear text passwords (ouch!) |
|||
$CONF['encrypt'] = 'md5crypt'; |
|||
|
|||
// Default Aliases |
|||
// The default aliases that need to be created for all domains. |
|||
$CONF['default_aliases'] = array ( |
|||
'abuse' => 'abuse@domain.tld', |
|||
'hostmaster' => 'hostmaster@domain.tld', |
|||
'postmaster' => 'postmaster@domain.tld', |
|||
'webmaster' => 'webmaster@domain.tld' |
|||
); |
|||
|
|||
// Mailboxes |
|||
// If you want to store the mailboxes per domain set this to 'YES'. |
|||
// Example: /usr/local/virtual/domain.tld/username@domain.tld |
|||
$CONF['domain_path'] = 'NO'; |
|||
// If you don't want to have the domain in your mailbox set this to 'NO'. |
|||
// Example: /usr/local/virtual/domain.tld/username |
|||
$CONF['domain_in_mailbox'] = 'YES'; |
|||
|
|||
// Default Domain Values |
|||
// Specify your default values below. Quota in MB. |
|||
$CONF['aliases'] = '10'; |
|||
$CONF['mailboxes'] = '10'; |
|||
$CONF['maxquota'] = '10'; |
|||
|
|||
// Quota |
|||
// When you want to enforce quota for your mailbox users set this to 'YES'. |
|||
$CONF['quota'] = 'NO'; |
|||
|
|||
// Virtual Vacation |
|||
// If you want to use virtual vacation for you mailbox users set this to 'YES'. |
|||
// NOTE: Make sure that you install the vacation module. http://high5.net/postfixadmin/ |
|||
$CONF['vacation'] = 'NO'; |
|||
|
|||
// Alias Control |
|||
// If you want to control your mailbox aliases as well set this to 'YES'. |
|||
$CONF['alias_control'] = 'NO'; |
|||
|
|||
// Logging |
|||
// If you don't want logging set this to 'NO'; |
|||
$CONF['logging'] = 'YES'; |
|||
|
|||
// Header |
|||
// Some header configuration. |
|||
// If you don't want the Postfix Admin logo to appear set this to 'NO'. |
|||
$CONF['logo'] = 'YES'; |
|||
$CONF['header_text'] = ':: Welcome to Postfix Admin ::'; |
|||
|
|||
// Footer |
|||
// Below information will be on all pages. |
|||
// If you don't want the footer information to appear set this to 'NO'. |
|||
$CONF['show_footer_text'] = 'YES'; |
|||
$CONF['footer_text'] = 'Return to domain.tld'; |
|||
$CONF['footer_link'] = 'http://domain.tld'; |
|||
|
|||
?> |
|||
@ -0,0 +1,123 @@ |
|||
<?php |
|||
//
|
|||
// File: create-alias.php
|
|||
//
|
|||
// Template File: create-alias.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tAddress
|
|||
// tGoto
|
|||
// tDomain
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fAddress
|
|||
// fGoto
|
|||
// fDomain
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
$list_domains = list_domains_for_admin ($SESSID_USERNAME); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$pCreate_alias_goto_text = $PALANG['pCreate_alias_goto_text']; |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/create-alias.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pCreate_alias_goto_text = $PALANG['pCreate_alias_goto_text']; |
|||
|
|||
$fAddress = $_POST['fAddress'] . "@" . $_POST['fDomain']; |
|||
$fGoto = $_POST['fGoto']; |
|||
$fDomain = $_POST['fDomain']; |
|||
|
|||
if (!preg_match ('/@/',$fGoto)) |
|||
{ |
|||
$fGoto = $fGoto . "@" . $_POST['fDomain']; |
|||
} |
|||
|
|||
if (!check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error1']; |
|||
} |
|||
|
|||
if (!check_alias ($fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error3']; |
|||
} |
|||
|
|||
if (empty ($fAddress) or !check_email ($fAddress)) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error1']; |
|||
} |
|||
|
|||
if (empty ($fGoto) or !check_email ($fGoto)) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_goto_text = $PALANG['pCreate_alias_goto_text_error']; |
|||
} |
|||
|
|||
if ($_POST['fAddress'] == "*") $fAddress = "@" . $_POST['fDomain']; |
|||
|
|||
$result = db_query ("SELECT * FROM alias WHERE address='$fAddress'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$error = 1; |
|||
$tAddress = $_POST['fAddress']; |
|||
$tGoto = $fGoto; |
|||
$tDomain = $fDomain; |
|||
$pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error2']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
if (preg_match ('/^\*@(.*)$/', $fGoto, $match)) $fGoto = "@" . $match[1]; |
|||
|
|||
$result = db_query ("INSERT INTO alias (address,goto,domain,created,modified) VALUES ('$fAddress','$fGoto','$fDomain',NOW(),NOW())"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pCreate_alias_result_error'] . "<br />($fAddress -> $fGoto)<br />"; |
|||
} |
|||
else |
|||
{ |
|||
db_log ($SESSID_USERNAME, $fDomain, "create alias", "$fAddress -> $fGoto"); |
|||
|
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pCreate_alias_result_succes'] . "<br />($fAddress -> $fGoto)</br />"; |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/create-alias.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,188 @@ |
|||
<?php |
|||
//
|
|||
// File: create-mailbox.php
|
|||
//
|
|||
// Template File: create-mailbox.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tUsername
|
|||
// tName
|
|||
// tQuota
|
|||
// tDomain
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
// fPassword
|
|||
// fPassword2
|
|||
// fName
|
|||
// fQuota
|
|||
// fDomain
|
|||
// fActive
|
|||
// fMail
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
$list_domains = list_domains_for_admin ($SESSID_USERNAME); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$tQuota = $CONF['maxquota']; |
|||
|
|||
$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text']; |
|||
$pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text']; |
|||
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text']; |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/create-mailbox.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text']; |
|||
$pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text']; |
|||
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text']; |
|||
|
|||
$fUsername = $_POST['fUsername'] . "@" . $_POST['fDomain']; |
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
$fName = $_POST['fName']; |
|||
$fDomain = $_POST['fDomain']; |
|||
if (isset ( $_POST['fQuota'])) $fQuota = $_POST['fQuota']; |
|||
if (isset ( $_POST['fActive'])) $fActive = $_POST['fActive']; |
|||
if (isset ( $_POST['fMail'])) $fMail = $_POST['fMail']; |
|||
|
|||
if (!check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1']; |
|||
} |
|||
|
|||
if (!check_mailbox ($fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error3']; |
|||
} |
|||
|
|||
if (empty ($fUsername) or !check_email ($fUsername)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1']; |
|||
} |
|||
|
|||
if (empty ($fPassword) or ($fPassword != $fPassword2)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text_error']; |
|||
} |
|||
|
|||
if (!check_quota ($fQuota, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text_error']; |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM alias WHERE address='$fUsername'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$error = 1; |
|||
$tUsername = $_POST['fUsername']; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tDomain = $fDomain; |
|||
$pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error2']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$password = pacrypt ($fPassword); |
|||
|
|||
if ($CONF['domain_path'] == "YES") |
|||
{ |
|||
if ($CONF['domain_in_mailbox'] == "YES") |
|||
{ |
|||
$maildir = $fDomain . "/" . $fUsername . "/"; |
|||
} |
|||
else |
|||
{ |
|||
$maildir = $fDomain . "/" . $_POST['fUsername'] . "/"; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$maildir = $fUsername . "/"; |
|||
} |
|||
|
|||
if (!empty ($fQuota)) $quota = $fQuota . "000000"; |
|||
if ($fActive == "on") $fActive = 1; |
|||
|
|||
$result = db_query ("INSERT INTO alias (address,goto,domain,created,modified,active) VALUES ('$fUsername','$fUsername','$fDomain',NOW(),NOW(),'$fActive')"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pAlias_result_error'] . "<br />($fUsername -> $fUsername)</br />"; |
|||
} |
|||
|
|||
$result = db_query ("INSERT INTO mailbox (username,password,name,maildir,quota,domain,created,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$quota','$fDomain',NOW(),NOW(),'$fActive')"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tDomain = $fDomain; |
|||
$tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />"; |
|||
} |
|||
else |
|||
{ |
|||
|
|||
db_log ($SESSID_USERNAME, $fDomain, "create mailbox", "$fUsername"); |
|||
|
|||
$tDomain = $fDomain; |
|||
$tMessage = $PALANG['pCreate_mailbox_result_succes'] . "<br />($fUsername)</br />"; |
|||
$tQuota = $CONF['maxquota']; |
|||
|
|||
if ($fMail == "on") { |
|||
if (!mail ($fUsername, $PALANG['pSendmail_subject_text'], $PALANG['pSendmail_body_text'], "From:" . $SESSID_USERNAME)) |
|||
{ |
|||
$tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />"; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage .= "<br />" . $PALANG['pSendmail_result_succes'] . "<br />"; |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/create-mailbox.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,82 @@ |
|||
<?php |
|||
//
|
|||
// File: delete.php
|
|||
//
|
|||
// Template File: delete.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDelete
|
|||
// fDomain
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session(); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
if (isset ($_GET['delete'])) $fDelete = $_GET['delete']; |
|||
if (isset ($_GET['domain'])) $fDomain = $_GET['domain']; |
|||
|
|||
if (!check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pDelete_domain_error'] . "<b>$fDomain</b>!</font>"; |
|||
} |
|||
else |
|||
{ |
|||
|
|||
$result = db_query ("DELETE FROM alias WHERE address='$fDelete' AND domain='$fDomain'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pDelete_delete_error'] . "<b>$fDelete</b> (alias)!</font>"; |
|||
} |
|||
else |
|||
{ |
|||
db_log ($SESSID_USERNAME, $fDomain, "delete alias", $fDelete); |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE username='$fDelete' AND domain='$fDomain'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$result = db_query ("DELETE FROM mailbox WHERE username='$fDelete' AND domain='$fDomain'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pDelete_delete_error'] . "<b>$fDelete</b> (mailbox)!</font>"; |
|||
} |
|||
else |
|||
{ |
|||
db_log ($SESSID_USERNAME, $fDomain, "delete mailbox", $fDelete); |
|||
} |
|||
} |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
header ("Location: overview.php?domain=$fDomain"); |
|||
exit; |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/delete.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/delete.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,110 @@ |
|||
<?php |
|||
//
|
|||
// File: edit-alias.php
|
|||
//
|
|||
// Template File: edit-alias.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tGoto
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fAddress
|
|||
// fDomain
|
|||
// fGoto
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$fAddress = $_GET['address']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
if (check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$result = db_query ("SELECT * FROM alias WHERE address='$fAddress' AND domain='$fDomain'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$tGoto = $row['goto']; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pEdit_alias_address_error']; |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/edit-alias.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pEdit_alias_goto = $PALANG['pEdit_alias_goto']; |
|||
|
|||
$fAddress = $_GET['address']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
$fGoto = $_POST['fGoto']; |
|||
|
|||
if (!check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tGoto = $fGoto; |
|||
$tMessage = $PALANG['pEdit_alias_domain_error'] . "$fDomain</font>"; |
|||
} |
|||
|
|||
if (empty ($fGoto)) |
|||
{ |
|||
$error = 1; |
|||
$tGoto = $fGoto; |
|||
$tMessage = $PALANG['pEdit_alias_goto_text_error1']; |
|||
} |
|||
|
|||
$goto = preg_replace ('/\r\n/', ',', $fGoto); |
|||
$goto = preg_replace ('/[\s]+/i', '', $goto); |
|||
$goto = preg_replace ('/\,*$/', '', $goto); |
|||
$array = preg_split ('/,/', $goto); |
|||
|
|||
for ($i = 0; $i < sizeof ($array); $i++) { |
|||
if (in_array ("$array[$i]", $CONF['default_aliases'])) continue; |
|||
if (empty ($array[$i])) continue; |
|||
if (!check_email ($array[$i])) |
|||
{ |
|||
$error = 1; |
|||
$tGoto = $goto; |
|||
$tMessage = $PALANG['pEdit_alias_goto_text_error2'] . "$array[$i]</font>"; |
|||
} |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$result = db_query ("UPDATE alias SET goto='$goto',modified=NOW() WHERE address='$fAddress' AND domain='$fDomain'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tMessage = $PALANG['pEdit_alias_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
db_log ($SESSID_USERNAME, $fDomain, "edit alias", "$fAddress -> $goto"); |
|||
|
|||
header ("Location: overview.php?domain=$fDomain"); |
|||
exit; |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/edit-alias.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,128 @@ |
|||
<?php |
|||
//
|
|||
// File: edit-mailbox.php
|
|||
//
|
|||
// Template File: edit-mailbox.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tName
|
|||
// tQuota
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
// fDomain
|
|||
// fPassword
|
|||
// fPassword2
|
|||
// fName
|
|||
// fQuota
|
|||
// fActive
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$fUsername = $_GET['username']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
if (check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$result = db_query ("SELECT * FROM mailbox WHERE username='$fUsername' AND domain='$fDomain'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$tName = $row['name']; |
|||
$tQuota = substr ($row['quota'], 0, -6); |
|||
$tActive = $row['active']; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pEdit_mailbox_login_error']; |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/edit-mailbox.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pEdit_mailbox_password_text = $PALANG['pEdit_mailbox_password_text_error']; |
|||
$pEdit_mailbox_quota_text = $PALANG['pEdit_mailbox_quota_text']; |
|||
|
|||
$fUsername = $_GET['username']; |
|||
$fDomain = $_GET['domain']; |
|||
|
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
$fName = $_POST['fName']; |
|||
if (isset ($_POST['fQuota'])) $fQuota = $_POST['fQuota']; |
|||
if (isset ($_POST['fActive'])) $fActive = $_POST['fActive']; |
|||
|
|||
if (!check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$tMessage = $PALANG['pEdit_mailbox_domain_error'] . "$fDomain</font>"; |
|||
} |
|||
|
|||
if ($fPassword != $fPassword2) |
|||
{ |
|||
$error = 1; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$pEdit_mailbox_password_text = $PALANG['pEdit_mailbox_password_text_error']; |
|||
} |
|||
|
|||
if (!check_quota ($fQuota, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tName = $fName; |
|||
$tQuota = $fQuota; |
|||
$pEdit_mailbox_quota_text = $PALANG['pEdit_mailbox_quota_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
if (!empty ($fQuota)) $quota = $fQuota . "000000"; |
|||
if ($fActive == "on") $fActive = 1; |
|||
|
|||
if (empty ($fPassword) and empty ($fPassword2)) |
|||
{ |
|||
$result = db_query ("UPDATE mailbox SET name='$fName',quota='$quota',modified=NOW(),active='$fActive' WHERE username='$fUsername' AND domain='$fDomain'"); |
|||
} |
|||
else |
|||
{ |
|||
$password = pacrypt ($fPassword); |
|||
$result = db_query ("UPDATE mailbox SET password='$password',name='$fName',quota='$quota',modified=NOW(),active='$fActive' WHERE username='$fUsername' AND domain='$fDomain'"); |
|||
} |
|||
|
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tMessage = $PALANG['pEdit_mailbox_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
db_log ($SESSID_USERNAME, $fDomain, "edit mailbox", $fUsername); |
|||
|
|||
header ("Location: overview.php?domain=$fDomain"); |
|||
exit; |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/edit-mailbox.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,523 @@ |
|||
<?php |
|||
//
|
|||
// File: functions.inc.php
|
|||
//
|
|||
if (ereg ("functions.inc.php", $_SERVER['PHP_SELF'])) |
|||
{ |
|||
header ("Location: login.php"); |
|||
exit; |
|||
} |
|||
|
|||
$version = "v2.0.2"; |
|||
|
|||
//
|
|||
// check_session
|
|||
// Action: Check if a session already exists, if not redirect to login.php
|
|||
// Call: check_session ()
|
|||
//
|
|||
function check_session () |
|||
{ |
|||
session_start (); |
|||
if (!session_is_registered ("sessid")) |
|||
{ |
|||
header ("Location: login.php"); |
|||
exit; |
|||
} |
|||
$SESSID_USERNAME = $_SESSION['sessid']['username']; |
|||
return $SESSID_USERNAME; |
|||
} |
|||
|
|||
function check_user_session () |
|||
{ |
|||
session_start (); |
|||
if (!session_is_registered ("userid")) |
|||
{ |
|||
header ("Location: login.php"); |
|||
exit; |
|||
} |
|||
$USERID_USERNAME = $_SESSION['userid']['username']; |
|||
return $USERID_USERNAME; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// check_string
|
|||
// Action: checks if a string is valid and returns TRUE is this is the case.
|
|||
// Call: check_string (string var)
|
|||
//
|
|||
function check_string ($var) |
|||
{ |
|||
if (preg_match ('/^([A-Za-z0-9 ]+)+$/', $var)) |
|||
{ |
|||
return true; |
|||
} |
|||
else |
|||
{ |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// check_email
|
|||
// Action: Checks if email is valid and returns TRUE if this is the case.
|
|||
// Call: check_email (string email)
|
|||
//
|
|||
function check_email ($email) |
|||
{ |
|||
return (preg_match ('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_{|}~]+' . '@' . '([-0-9A-Z]+\.)+' . '([0-9A-Z]){2,4}$/i', trim($email))); |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// get_domain_properties
|
|||
// Action: Get all the properties of a domain.
|
|||
// Call: get_domain_properties (string domain)
|
|||
//
|
|||
function get_domain_properties ($domain) |
|||
{ |
|||
$list = ""; |
|||
|
|||
$result = db_query ("SELECT * FROM alias WHERE domain='$domain'"); |
|||
$list['alias_count'] = $result['rows']; |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE domain='$domain'"); |
|||
$list['mailbox_count'] = $result['rows']; |
|||
$list['alias_count'] = $list['alias_count'] - $list['mailbox_count']; |
|||
|
|||
$result = db_query ("SELECT * FROM domain WHERE domain='$domain'"); |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$list['description'] = $row['description']; |
|||
$list['aliases'] = $row['aliases']; |
|||
$list['mailboxes'] = $row['mailboxes']; |
|||
$list['maxquota'] = $row['maxquota']; |
|||
$list['created'] = $row['created']; |
|||
$list['modified'] = $row['modified']; |
|||
$list['active'] = $row['active']; |
|||
|
|||
return $list; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// check_alias
|
|||
// Action: Checks if the domain is still able to create aliases.
|
|||
// Call: check_alias (string domain)
|
|||
//
|
|||
function check_alias ($domain) |
|||
{ |
|||
$limit = get_domain_properties ($domain); |
|||
if ($limit['aliases'] >= 0) |
|||
{ |
|||
if ($limit['alias_count'] >= $limit['aliases']) |
|||
{ |
|||
return false; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// check_mailbox
|
|||
// Action: Checks if the domain is still able to create mailboxes.
|
|||
// Call: ceck_mailbox (string domain)
|
|||
//
|
|||
function check_mailbox ($domain) |
|||
{ |
|||
$limit = get_domain_properties ($domain); |
|||
if ($limit['mailboxes'] >= 0) |
|||
{ |
|||
if ($limit['mailbox_count'] >= $limit['mailboxes']) |
|||
{ |
|||
return false; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// check_quota
|
|||
// Action: Checks if the user is creating a mailbox with the correct quota
|
|||
// Call: check_quota (string domain)
|
|||
//
|
|||
function check_quota ($quota, $domain) |
|||
{ |
|||
$limit = get_domain_properties ($domain); |
|||
if ($limit['maxquota'] >= 0) |
|||
{ |
|||
if ($quota > $limit['maxquota']) |
|||
{ |
|||
return false; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// check_owner
|
|||
// Action: Checks if the admin is the owner of the domain.
|
|||
// Call: check_owner (string admin, string domain)
|
|||
//
|
|||
function check_owner ($username, $domain) |
|||
{ |
|||
$result = db_query ("SELECT * FROM domain_admins WHERE username='$username' AND domain='$domain' AND active='1'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
return false; |
|||
} |
|||
else |
|||
{ |
|||
return true; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// list_domains_for_admin
|
|||
// Action: Lists all the domains for an admin.
|
|||
// Call: list_domains_for_admin (string admin)
|
|||
//
|
|||
function list_domains_for_admin ($username) |
|||
{ |
|||
$list = ""; |
|||
|
|||
$result = db_query ("SELECT * FROM domain LEFT JOIN domain_admins ON domain.domain=domain_admins.domain WHERE domain_admins.username='$username' AND domain.active='1' ORDER BY domain_admins.domain"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
$i = 0; |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$list[$i] = $row['domain']; |
|||
$i++; |
|||
} |
|||
} |
|||
return $list; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// list_domains
|
|||
// Action: List all available domains.
|
|||
// Call: list_domains ()
|
|||
//
|
|||
function list_domains () |
|||
{ |
|||
$list = ""; |
|||
|
|||
$result = db_query ("SELECT * FROM domain ORDER BY domain"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
$i = 0; |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$list[$i] = $row['domain']; |
|||
$i++; |
|||
} |
|||
} |
|||
return $list; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// admin_exist
|
|||
// Action: Checks if the admin already exists.
|
|||
// Call: admin_exist (string admin)
|
|||
//
|
|||
// was check_admin
|
|||
//
|
|||
function admin_exist ($username) |
|||
{ |
|||
$result = db_query ("SELECT * FROM admin WHERE username='$username'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
return false; |
|||
} |
|||
else |
|||
{ |
|||
return true; |
|||
} |
|||
} |
|||
|
|||
//
|
|||
// domain_exist
|
|||
// Action: Checks if the domain already exists.
|
|||
// Call: domain_exist (string domain)
|
|||
//
|
|||
function domain_exist ($domain) |
|||
{ |
|||
$result = db_query ("SELECT * FROM domain WHERE domain='$domain'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
return false; |
|||
} |
|||
else |
|||
{ |
|||
return true; |
|||
} |
|||
} |
|||
|
|||
|
|||
//
|
|||
// list_admins
|
|||
// Action: Lists all the admins
|
|||
// Call: list_admins ()
|
|||
//
|
|||
// was admin_list_admins
|
|||
//
|
|||
function list_admins () |
|||
{ |
|||
$list = ""; |
|||
|
|||
$result = db_query ("SELECT * FROM admin ORDER BY username"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
$i = 0; |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$list[$i] = $row['username']; |
|||
$i++; |
|||
} |
|||
} |
|||
return $list; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// get_admin_properties
|
|||
// Action: Get all the admin properties.
|
|||
// Call: get_admin_properties (string admin)
|
|||
function get_admin_properties ($username) |
|||
{ |
|||
$list = ""; |
|||
|
|||
$result = db_query ("SELECT * FROM domain_admins WHERE username='$username'"); |
|||
$list['domain_count'] = $result['rows']; |
|||
|
|||
$result = db_query ("SELECT * FROM admin WHERE username='$username'"); |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$list['created'] = $row['created']; |
|||
$list['modified'] = $row['modified']; |
|||
$list['active'] = $row['active']; |
|||
|
|||
return $list; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// pacrypt
|
|||
// Action: Encrypts password based on config settings
|
|||
// Call: pacrypt (string cleartextpassword)
|
|||
//
|
|||
function pacrypt ($pw, $salt="") |
|||
{ |
|||
global $CONF; |
|||
$password = ""; |
|||
|
|||
if ($CONF['encrypt'] == 'md5crypt') |
|||
{ |
|||
$password = md5crypt ($pw, $salt); |
|||
} |
|||
|
|||
if ($CONF['encrypt'] == 'system') |
|||
{ |
|||
$password = crypt ($pw, $salt); |
|||
} |
|||
|
|||
if ($CONF['encrypt'] == 'cleartext') |
|||
{ |
|||
$password = $pw; |
|||
} |
|||
|
|||
return $password; |
|||
} |
|||
|
|||
|
|||
|
|||
////////////////////////////////////////////////////////////////////////////////
|
|||
//
|
|||
// md5crypt
|
|||
// Action: Creates MD5 encrypted password
|
|||
// Call: md5crypt (string cleartextpassword)
|
|||
//
|
|||
$MAGIC = "$1$"; |
|||
$ITOA64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; |
|||
|
|||
function md5crypt ($pw, $salt="", $magic="") |
|||
{ |
|||
global $MAGIC; |
|||
if ($magic == "") $magic = $MAGIC; |
|||
if ($salt == "") $salt = create_salt(); |
|||
$slist = explode ("$", $salt); |
|||
if ($slist[0] == "1") $salt = $slist[1]; |
|||
$salt = substr ($salt, 0, 8); |
|||
$ctx = $pw . $magic . $salt; |
|||
$final = hex2bin (md5 ($pw . $salt . $pw)); |
|||
for ($i=strlen ($pw); $i>0; $i-=16) { |
|||
if ($i > 16) |
|||
$ctx .= substr ($final,0,16); |
|||
else |
|||
$ctx .= substr ($final,0,$i); |
|||
} |
|||
$i = strlen ($pw); |
|||
while ($i > 0) { |
|||
if ($i & 1) $ctx .= chr (0); |
|||
else $ctx .= $pw[0]; |
|||
$i = $i >> 1; |
|||
} |
|||
$final = hex2bin (md5 ($ctx)); |
|||
for ($i=0;$i<1000;$i++) { |
|||
$ctx1 = ""; |
|||
if ($i & 1) $ctx1 .= $pw; |
|||
else $ctx1 .= substr ($final,0,16); |
|||
if ($i % 3) $ctx1 .= $salt; |
|||
if ($i % 7) $ctx1 .= $pw; |
|||
if ($i & 1) $ctx1 .= substr ($final,0,16); |
|||
else $ctx1 .= $pw; |
|||
$final = hex2bin (md5 ($ctx1)); |
|||
} |
|||
$passwd = ""; |
|||
$passwd .= to64 ( ( (ord ($final[0]) << 16) | (ord ($final[6]) << 8) | (ord ($final[12])) ), 4); |
|||
$passwd .= to64 ( ( (ord ($final[1]) << 16) | (ord ($final[7]) << 8) | (ord ($final[13])) ), 4); |
|||
$passwd .= to64 ( ( (ord ($final[2]) << 16) | (ord ($final[8]) << 8) | (ord ($final[14])) ), 4); |
|||
$passwd .= to64 ( ( (ord ($final[3]) << 16) | (ord ($final[9]) << 8) | (ord ($final[15])) ), 4); |
|||
$passwd .= to64 ( ( (ord ($final[4]) << 16) | (ord ($final[10]) << 8) | (ord ($final[5])) ), 4); |
|||
$passwd .= to64 ( ord ($final[11]), 2); |
|||
return "$magic$salt\$$passwd"; |
|||
} |
|||
|
|||
function create_salt () |
|||
{ |
|||
srand ((double)microtime ()*1000000); |
|||
$salt = substr (md5 (rand (0,9999999)), 0, 8); |
|||
return $salt; |
|||
} |
|||
|
|||
function hex2bin ($str) |
|||
{ |
|||
$len = strlen ($str); |
|||
$nstr = ""; |
|||
for ($i=0;$i<$len;$i+=2) { |
|||
$num = sscanf (substr ($str,$i,2), "%x"); |
|||
$nstr.=chr ($num[0]); |
|||
} |
|||
return $nstr; |
|||
} |
|||
|
|||
function to64 ($v, $n) |
|||
{ |
|||
global $ITOA64; |
|||
$ret = ""; |
|||
while (($n - 1) >= 0) { |
|||
$n--; |
|||
$ret .= $ITOA64[$v & 0x3f]; |
|||
$v = $v >> 6; |
|||
} |
|||
return $ret; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// db_connect
|
|||
// Action: Makes a connection to the database if it doesn't exist
|
|||
// Call: db_connect ()
|
|||
//
|
|||
function db_connect () |
|||
{ |
|||
global $CONF; |
|||
$link = @mysql_connect ($CONF['database_host'], $CONF['database_user'], $CONF['database_password']) or die ("<p />DEBUG INFORMATION:<br />Connect: " . mysql_error ()); |
|||
$succes = @mysql_select_db ($CONF['database_name'], $link) or die ("<p />DEBUG INFORMATION:<br />MySQL Select Database: " . mysql_error ()); |
|||
return $link; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// db_query
|
|||
// Action: Sends a query to the database and returns query result and number of rows
|
|||
// Call: db_query (string query)
|
|||
//
|
|||
function db_query ($query) |
|||
{ |
|||
global $CONF; |
|||
$link = db_connect (); |
|||
$result = @mysql_query ($query, $link) or die ("<p />DEBUG INFORMATION:<br />Invalid query: " . mysql_error()); |
|||
if (eregi ("^select", $query)) |
|||
{ |
|||
// if $query was a select statement check the number of rows with mysql_num_rows ().
|
|||
$number_rows = mysql_num_rows ($result); |
|||
} |
|||
else |
|||
{ |
|||
// if $query was something else, UPDATE, DELETE or INSERT check the number of rows with
|
|||
// mysql_affected_rows ().
|
|||
$number_rows = mysql_affected_rows ($link); |
|||
} |
|||
$return = array ( |
|||
"result" => $result, |
|||
"rows" => $number_rows |
|||
); |
|||
return $return; |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// db_delete
|
|||
// Action: Deletes a row from a specified table
|
|||
// Call db_delete (string table, string where, string delete)
|
|||
//
|
|||
function db_delete ($table,$where,$delete) |
|||
{ |
|||
$result = db_query ("DELETE FROM $table WHERE $where='$delete'"); |
|||
if ($result['rows'] >= 1) |
|||
{ |
|||
return $result['rows']; |
|||
} |
|||
else |
|||
{ |
|||
return true; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
//
|
|||
// db_log
|
|||
// Action: Logs actions from admin
|
|||
// Call: db_delete (string username, string domain, string action, string data)
|
|||
//
|
|||
function db_log ($username,$domain,$action,$data) |
|||
{ |
|||
global $CONF; |
|||
|
|||
if ($CONF['logging'] == 'YES') |
|||
{ |
|||
$result = db_query ("INSERT INTO log (timestamp,username,domain,action,data) VALUES (NOW(),'$username','$domain','$action','$data')"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
return false; |
|||
} |
|||
else |
|||
{ |
|||
return true; |
|||
} |
|||
} |
|||
} |
|||
|
|||
?>
|
|||
@ -0,0 +1,17 @@ |
|||
<?php |
|||
//
|
|||
// File: index.php
|
|||
//
|
|||
// Template File: -none-
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
header ("Location: login.php"); |
|||
exit; |
|||
?>
|
|||
@ -0,0 +1,286 @@ |
|||
<?php |
|||
// |
|||
// Language file German |
|||
// |
|||
$LANG['YES'] = 'JA'; |
|||
$PALANG['NO'] = 'NEIN'; |
|||
$PALANG['edit'] = 'editieren'; |
|||
$PALANG['del'] = 'löschen'; |
|||
$PALANG['confirm'] = 'Sind Sie sicher dass Sie das löschen wollen?'; |
|||
$PALANG['confirm_domain'] = 'Wollen Sie wirklich alle Einträge dieser Domain löschen? Dies kann NICHT rückgängig gemacht werden!'; |
|||
|
|||
$PALANG['pLogin_welcome'] = 'Mail-Administratoren loggen sich bitte hier ein.'; |
|||
$PALANG['pLogin_username'] = 'Login (eMail)'; |
|||
$PALANG['pLogin_password'] = 'Passwort'; |
|||
$PALANG['pLogin_button'] = 'Login'; |
|||
$PALANG['pLogin_username_incorrect'] = 'Ihr Login-Name ist nicht korrekt. Bitte benutzen Sie die komplette eMail-Adresse'; |
|||
$PALANG['pLogin_password_incorrect'] = 'Falsches Passwort!'; |
|||
$PALANG['pLogin_login_users'] = 'eMail-Benutzer bitte hier einloggen.'; |
|||
|
|||
$PALANG['pMenu_overview'] = 'Überblick'; |
|||
$PALANG['pMenu_create_alias'] = 'Alias hinzufügen'; |
|||
$PALANG['pMenu_create_mailbox'] = 'Mailbox hinzufügen'; |
|||
$PALANG['pMenu_sendmail'] = 'Email versenden'; |
|||
$PALANG['pMenu_password'] = 'Passwort ändern'; |
|||
$PALANG['pMenu_viewlog'] = 'Log ansehen'; |
|||
$PALANG['pMenu_logout'] = 'Logout'; |
|||
|
|||
$PALANG['pMain_welcome'] = 'Willkommen zu Postfix Admin!'; |
|||
$PALANG['pMain_overview'] = 'Listet Ihre Aliase und Mailboxen auf. Sie können sie hier editieren und löschen.'; |
|||
$PALANG['pMain_create_alias'] = 'Fügt einen neuen Alias für Ihre Domain hinzu.'; |
|||
$PALANG['pMain_create_mailbox'] = 'Legt eine neue Mailbox für Ihre Domain an.'; |
|||
$PALANG['pMain_sendmail'] = 'Versenden Sie eine Email.'; |
|||
$PALANG['pMain_password'] = 'Ändern Sie Ihr Admin-Passwort.'; |
|||
$PALANG['pMain_viewlog'] = 'Lassen Sie sich das Log anzeigen.'; |
|||
$PALANG['pMain_logout'] = 'Ausloggen aus dem System'; |
|||
|
|||
$PALANG['pOverview_button'] = 'Los'; |
|||
$PALANG['pOverview_welcome'] = 'Überblick über '; |
|||
$PALANG['pOverview_alias_alias_count'] = 'Aliase'; |
|||
$PALANG['pOverview_alias_mailbox_count'] = 'Mailboxen'; |
|||
$PALANG['pOverview_alias_address'] = 'Von'; |
|||
$PALANG['pOverview_alias_goto'] = 'An'; |
|||
$PALANG['pOverview_alias_modified'] = 'Zuletzt verändert'; |
|||
$PALANG['pOverview_mailbox_username'] = 'Email'; |
|||
$PALANG['pOverview_mailbox_name'] = 'Name'; |
|||
$PALANG['pOverview_mailbox_quota'] = 'Quota (MB)'; |
|||
$PALANG['pOverview_mailbox_modified'] = 'Zuletzt verändert'; |
|||
$PALANG['pOverview_mailbox_active'] = 'Aktiv'; |
|||
|
|||
$PALANG['pOverview_get_domain'] = 'Domain'; |
|||
$PALANG['pOverview_get_aliases'] = 'Aliases'; |
|||
$PALANG['pOverview_get_mailboxes'] = 'Mailboxes'; |
|||
$PALANG['pOverview_get_quota'] = 'Mailbox Quota (MB)'; |
|||
$PALANG['pOverview_get_modified'] = 'Zuletzt verändert'; |
|||
|
|||
$PALANG['pDelete_delete_error'] = '<font color="red">Eintrag konnte nicht gelöscht werden '; |
|||
$PALANG['pDelete_domain_error'] = '<font color="red">Diese Domain gehört nicht Ihnen '; |
|||
|
|||
$PALANG['pCreate_alias_welcome'] = 'Neuen Alias für Ihre Domain anlegen'; |
|||
$PALANG['pCreate_alias_address'] = 'Alias'; |
|||
$PALANG['pCreate_alias_address_text_error1'] = '<br /><font color="red">Dieses ALIAS ist nicht erlaubt!</font>'; |
|||
$PALANG['pCreate_alias_address_text_error2'] = '<br /><font color="red">Diese eMail-Adresse existiert bereits. Bitte wählen Sie eine andere!</font>'; |
|||
$PALANG['pCreate_alias_address_text_error3'] = '<br /><font color="red">Sie haben Ihr Limit für Aliase auf dieser Domain erreicht!</font>'; |
|||
$PALANG['pCreate_alias_goto'] = 'An'; |
|||
$PALANG['pCreate_alias_button'] = 'Alias hinzufügen'; |
|||
$PALANG['pCreate_alias_goto_text'] = 'Wohin soll die eMail weitergeleitet werden?'; |
|||
$PALANG['pCreate_alias_goto_text_error'] = 'Wohin die eMail weitergeleitet werden soll<br /><font color="red">Das An-Feld ist falsch!</font>'; |
|||
$PALANG['pCreate_alias_result_error'] = '<font color="red">Unmöglich dieses Alias in die Alias-Tabelle einzutragen!</font>'; |
|||
$PALANG['pCreate_alias_result_succes'] = 'Das Alias wurde in die Alias-Tabelle hinzugefügt!'; |
|||
$PALANG['pCreate_alias_catchall_text'] = 'Um alle Adressen abzudecken benutzen Sie einen "*" als Alias.<br />Um ganze Domains an andere Domains weiterzuleiten benutzen Sie "*@domain.tld" im "An"-Feld.'; |
|||
|
|||
$PALANG['pEdit_alias_welcome'] = 'Ändern Sie einen Alias für Ihre Domain<br />EIN Eintrag pro Zeile!'; |
|||
$PALANG['pEdit_alias_address'] = 'Alias'; |
|||
$PALANG['pEdit_alias_address_error'] = '<font color="red">Auffinden des Alias schlug fehl!</font>'; |
|||
$PALANG['pEdit_alias_goto'] = 'An'; |
|||
$PALANG['pEdit_alias_goto_text_error1'] = '<font color="red">Sie haben im "To"-Feld nichts angegeben!</font>'; |
|||
$PALANG['pEdit_alias_goto_text_error2'] = '<font color="red">Die angegebene eMail-Adresse ist nicht korrekt: '; |
|||
$PALANG['pEdit_alias_domain_error'] = '<font color="red">Diese Domain gehört nicht Ihnen: '; |
|||
$PALANG['pEdit_alias_button'] = 'Alias ändern'; |
|||
$PALANG['pEdit_alias_result_error'] = '<font color="red">Ändern des Aliases nicht möglich!</font>'; |
|||
|
|||
$PALANG['pCreate_mailbox_welcome'] = 'Legen Sie eine neue Mailbox für Ihre Domain an.'; |
|||
$PALANG['pCreate_mailbox_username'] = 'Benutzername'; |
|||
$PALANG['pCreate_mailbox_username_text_error1'] = '<br /><font color="red">Die EMAIL ist nicht korrekt!</font>'; |
|||
$PALANG['pCreate_mailbox_username_text_error2'] = '<br /><font color="red">Diese Email-Adresse existiert bereits. Bitte wählen Sie eine andere!</font>'; |
|||
$PALANG['pCreate_mailbox_username_text_error3'] = '<br /><font color="red">Sie dürfen leider nicht mehr Mailboxen für diese Domain anlegen!</font>'; |
|||
$PALANG['pCreate_mailbox_password'] = 'Passwort'; |
|||
$PALANG['pCreate_mailbox_password2'] = 'Passwort (nochmal)'; |
|||
$PALANG['pCreate_mailbox_password_text'] = 'Passwort für POP3/IMAP'; |
|||
$PALANG['pCreate_mailbox_password_text_error'] = 'Passwort für POP3/IMAP<br /><font color="red">Die beiden Passwörter sind nicht identisch!<br />Oder ganz leer!</font>'; |
|||
$PALANG['pCreate_mailbox_name'] = 'Name'; |
|||
$PALANG['pCreate_mailbox_name_text'] = 'Voller Name'; |
|||
$PALANG['pCreate_mailbox_quota'] = 'Quota'; |
|||
$PALANG['pCreate_mailbox_quota_text'] = 'MB'; |
|||
$PALANG['pCreate_mailbox_quota_text_error'] = 'MB<br /><font color="red">Das angegebene Quota ist zu hoch!</font>'; |
|||
$PALANG['pCreate_mailbox_active'] = 'Aktiv'; |
|||
$PALANG['pCreate_mailbox_mail'] = 'Mailbox anlegen'; |
|||
$PALANG['pCreate_mailbox_button'] = 'Mailbox hinzufügen'; |
|||
$PALANG['pCreate_mailbox_result_error'] = '<font color="red">Unmöglich die Mailbox in die Mailbox-Tabelle einzutragen!</font>'; |
|||
$PALANG['pCreate_mailbox_result_succes'] = 'Die Mailbox wurde in die Mailbox-Tabelle eingetragen!'; |
|||
|
|||
$PALANG['pEdit_mailbox_welcome'] = 'Ändern Sie ihre Mailbox hier.'; |
|||
$PALANG['pEdit_mailbox_username'] = 'Benutzername'; |
|||
$PALANG['pEdit_mailbox_username_error'] = '<font color="red">Unmöglich die Mailbox aufzufinden!</font>'; |
|||
$PALANG['pEdit_mailbox_password'] = 'Neues Passwort'; |
|||
$PALANG['pEdit_mailbox_password2'] = 'Neues Passwort (nochmal)'; |
|||
$PALANG['pEdit_mailbox_password_text_error'] = '<font color="red">Die beiden Passwörter sind nicht identisch!</font>'; |
|||
$PALANG['pEdit_mailbox_name'] = 'Name'; |
|||
$PALANG['pEdit_mailbox_quota'] = 'Quota'; |
|||
$PALANG['pEdit_mailbox_quota_text'] = 'MB'; |
|||
$PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><font color="red">Das angegebene Quota ist zu hoch!</font>'; |
|||
$PALANG['pEdit_mailbox_domain_error'] = '<font color="red">Diese Domain gehört nicht Ihnen: '; |
|||
$PALANG['pEdit_mailbox_button'] = 'Mailbox editieren'; |
|||
$PALANG['pEdit_mailbox_result_error'] = '<font color="red">Unmöglich das Passwort zu ändern!</font>'; |
|||
|
|||
$PALANG['pPassword_welcome'] = 'Ändern Sie Ihr Login-Passwort.'; |
|||
$PALANG['pPassword_admin'] = 'Login'; |
|||
$PALANG['pPassword_admin_text_error'] = '<font color="red">Das angegebene Login entspricht keiner Mailbox!</font>'; |
|||
$PALANG['pPassword_password_current'] = 'Jetziges Password'; |
|||
$PALANG['pPassword_password_current_text_error'] = '<font color="red">Sie haben Ihr derzeitiges Passwort nicht angegeben!</font>'; |
|||
$PALANG['pPassword_password'] = 'Neues Passwort'; |
|||
$PALANG['pPassword_password2'] = 'Neues Password (nochmal)'; |
|||
$PALANG['pPassword_password_text_error'] = '<font color="red">Die beiden angegebenen Passwörter sind nicht identische!<br />Oder leer!</font>'; |
|||
$PALANG['pPassword_button'] = 'Passwort ändern'; |
|||
$PALANG['pPassword_result_error'] = '<font color="red">Unmöglich das Passwort zu ändern!</font>'; |
|||
$PALANG['pPassword_result_succes'] = 'Ihr Passwort wurde geändert!'; |
|||
|
|||
$PALANG['pViewlog_welcome'] = 'Zeigt die letzten 10 Aktionen für '; |
|||
$PALANG['pViewlog_timestamp'] = 'Zeitpunkt'; |
|||
$PALANG['pViewlog_username'] = 'Admin'; |
|||
$PALANG['pViewlog_domain'] = 'Domain'; |
|||
$PALANG['pViewlog_action'] = 'Aktion'; |
|||
$PALANG['pViewlog_data'] = 'Daten'; |
|||
|
|||
$PALANG['pViewlog_button'] = 'Los'; |
|||
$PALANG['pViewlog_result_error'] = '<font color="red">Kann keine Einträge finden!</font>'; |
|||
|
|||
$PALANG['pSendmail_welcome'] = 'eMail versenden.'; |
|||
$PALANG['pSendmail_admin'] = 'Von'; |
|||
$PALANG['pSendmail_to'] = 'An'; |
|||
$PALANG['pSendmail_to_text_error'] = '<font color="red">Das "An"-Feld ist leer bzw. ungültig!</font>'; |
|||
$PALANG['pSendmail_subject'] = 'Betreff'; |
|||
$PALANG['pSendmail_subject_text'] = 'Willkommen'; |
|||
$PALANG['pSendmail_body'] = 'Text'; |
|||
$PALANG['pSendmail_body_text'] = <<<EOM |
|||
Hallo, |
|||
|
|||
Viel Spass mit Ihrem neuen Email-Account. |
|||
|
|||
EOM; |
|||
$PALANG['pSendmail_button'] = 'Versende Nachricht'; |
|||
$PALANG['pSendmail_result_error'] = '<font color="red">Kann Mailbox nicht anlegen!</font>'; |
|||
$PALANG['pSendmail_result_succes'] = 'Mailbox wurde angelegt!'; |
|||
|
|||
$PALANG['pVcp_welcome'] = 'Mailbox-Passwort ändern'; |
|||
$PALANG['pVcp_username'] = 'Email'; |
|||
$PALANG['pVcp_username_text_error'] = '<font color="red">Die angegebene Email passt zu keiner Mailbox!</font>'; |
|||
$PALANG['pVcp_password_current'] = 'Derzeitiges Passwort'; |
|||
$PALANG['pVcp_password_current_text_error'] = '<font color="red">Sie haben ihr derzeitiges Passwort nicht angegeben!</font>'; |
|||
$PALANG['pVcp_password'] = 'Neues Passwort'; |
|||
$PALANG['pVcp_password2'] = 'Neues Passwort (nochmal)'; |
|||
$PALANG['pVcp_password_text_error'] = '<font color="red">Die beiden Passwörter sind nicht identisch<br />Oder sind leer</font>'; |
|||
$PALANG['pVcp_button'] = 'Passwort ändern'; |
|||
$PALANG['pVcp_result_error'] = '<font color="red">Kann das Passwort nicht ändern</font>'; |
|||
$PALANG['pVcp_result_succes'] = 'Passwort wurde geändert!'; |
|||
|
|||
$PALANG['pAdminMenu_list_admin'] = 'Admin Liste'; |
|||
$PALANG['pAdminMenu_list_domain'] = 'Domain Liste'; |
|||
$PALANG['pAdminMenu_list_virtual'] = 'Virtual Liste'; |
|||
$PALANG['pAdminMenu_viewlog'] = 'Log ansehen'; |
|||
$PALANG['pAdminMenu_backup'] = 'Sicherung'; |
|||
$PALANG['pAdminMenu_create_domain_admins'] = 'Domain Admins'; |
|||
$PALANG['pAdminMenu_create_admin'] = 'Neuer Admin'; |
|||
$PALANG['pAdminMenu_create_domain'] = 'Neue Domain'; |
|||
$PALANG['pAdminMenu_create_alias'] = 'Alias hinzufügen'; |
|||
$PALANG['pAdminMenu_create_mailbox'] = 'Mailbox hinzufügen'; |
|||
|
|||
$PALANG['pAdminList_admin_domain'] = 'Domain'; |
|||
$PALANG['pAdminList_admin_username'] = 'Admin'; |
|||
$PALANG['pAdminList_admin_count'] = 'Domains'; |
|||
$PALANG['pAdminList_admin_modified'] = 'zuletzt geändert'; |
|||
$PALANG['pAdminList_admin_active'] = 'Aktiv'; |
|||
|
|||
$PALANG['pAdminList_domain_domain'] = 'Domain'; |
|||
$PALANG['pAdminList_domain_description'] = 'Beschreibung'; |
|||
$PALANG['pAdminList_domain_aliases'] = 'Aliase'; |
|||
$PALANG['pAdminList_domain_mailboxes'] = 'Mailboxen'; |
|||
$PALANG['pAdminList_domain_maxquota'] = 'Max Quota (MB)'; |
|||
$PALANG['pAdminList_domain_modified'] = 'zuletzt geändert'; |
|||
$PALANG['pAdminList_domain_active'] = 'Aktiv'; |
|||
|
|||
$PALANG['pAdminList_virtual_button'] = 'Los'; |
|||
$PALANG['pAdminList_virtual_welcome'] = 'Überblic für '; |
|||
$PALANG['pAdminList_virtual_alias_alias_count'] = 'Aliase'; |
|||
$PALANG['pAdminList_virtual_alias_mailbox_count'] = 'Mailboxen'; |
|||
$PALANG['pAdminList_virtual_alias_address'] = 'Von'; |
|||
$PALANG['pAdminList_virtual_alias_goto'] = 'An'; |
|||
$PALANG['pAdminList_virtual_alias_modified'] = 'zuletzt geändert'; |
|||
$PALANG['pAdminList_virtual_mailbox_username'] = 'Email'; |
|||
$PALANG['pAdminList_virtual_mailbox_name'] = 'Name'; |
|||
$PALANG['pAdminList_virtual_mailbox_quota'] = 'Quota (MB)'; |
|||
$PALANG['pAdminList_virtual_mailbox_modified'] = 'zuletzt geändert'; |
|||
$PALANG['pAdminList_virtual_mailbox_active'] = 'Aktiv'; |
|||
|
|||
$PALANG['pAdminCreate_domain_welcome'] = 'Domain hinzufügen'; |
|||
$PALANG['pAdminCreate_domain_domain'] = 'Domain'; |
|||
$PALANG['pAdminCreate_domain_domain_text_error'] = '<font color="red">Diese Domain existiert bereits!</font>'; |
|||
$PALANG['pAdminCreate_domain_description'] = 'Beschreibung'; |
|||
$PALANG['pAdminCreate_domain_aliases'] = 'Aliase'; |
|||
$PALANG['pAdminCreate_domain_aliases_text'] = '0 = ausschalten | -1 = kein Limit'; |
|||
$PALANG['pAdminCreate_domain_mailboxes'] = 'Mailboxes'; |
|||
$PALANG['pAdminCreate_domain_mailboxes_text'] = '0 = ausschalten | -1 = kein Limit'; |
|||
$PALANG['pAdminCreate_domain_maxquota'] = 'Max Quota'; |
|||
$PALANG['pAdminCreate_domain_maxquota_text'] = 'MB<br /> 0 = ausschalten | -1 = kein Limit'; |
|||
$PALANG['pAdminCreate_domain_defaultaliases'] = 'Standard-Aliase hinzufügen'; |
|||
$PALANG['pAdminCreate_domain_button'] = 'Domain hinzufügen'; |
|||
$PALANG['pAdminCreate_domain_result_error'] = '<font color="red">Konnte Domain nicht anlegen!</font>'; |
|||
$PALANG['pAdminCreate_domain_result_succes'] = 'Domain wurde angelegt!'; |
|||
|
|||
$PALANG['pAdminEdit_domain_welcome'] = 'Domain editieren'; |
|||
$PALANG['pAdminEdit_domain_domain'] = 'Domain'; |
|||
$PALANG['pAdminEdit_domain_description'] = 'Beschreibung'; |
|||
$PALANG['pAdminEdit_domain_aliases'] = 'Aliase'; |
|||
$PALANG['pAdminCreate_domain_aliases_text'] = '0 = ausschalten | -1 = kein Limit'; |
|||
$PALANG['pAdminEdit_domain_mailboxes'] = 'Mailboxes'; |
|||
$PALANG['pAdminCreate_domain_mailboxes_text'] = '0 = ausschalten | -1 = kein Limit'; |
|||
$PALANG['pAdminEdit_domain_maxquota'] = 'Max Quota'; |
|||
$PALANG['pAdminCreate_domain_maxquota_text'] = 'MB<br /> 0 = ausschalten | -1 = kein Limit'; |
|||
$PALANG['pAdminEdit_domain_active'] = 'Aktiv'; |
|||
$PALANG['pAdminEdit_domain_button'] = 'Domain editieren'; |
|||
$PALANG['pAdminEdit_domain_result_error'] = '<font color="red">Konnte Domain nicht editieren!</font>'; |
|||
|
|||
$PALANG['pAdminCreate_admin_welcome'] = 'Neuen Domain-Admin hinzufügen'; |
|||
$PALANG['pAdminCreate_admin_username'] = 'Admin'; |
|||
$PALANG['pAdminCreate_admin_username_text'] = 'Email Adresse'; |
|||
$PALANG['pAdminCreate_admin_username_text_error1'] = 'Email Adresse<br /><font color="red">Admin-Adresse ist keine echte Email-Adresse!</font>'; |
|||
$PALANG['pAdminCreate_admin_username_text_error2'] = 'Email Adresse<br /><font color="red">Der Admin existiert bereits bzw. ist nicht korrekt</font>'; |
|||
$PALANG['pAdminCreate_admin_password'] = 'Passwort'; |
|||
$PALANG['pAdminCreate_admin_password2'] = 'Passwort (nochmal)'; |
|||
$PALANG['pAdminCreate_admin_password_text_error'] = '<font color="red">Die angegebenen Passwörter sind nicht identisch<br />Oder leer!</font>'; |
|||
$PALANG['pAdminCreate_admin_button'] = 'Admin hinzufügen'; |
|||
$PALANG['pAdminCreate_admin_result_error'] = '<font color="red">Konnte den Admin nicht anlegen!</font>'; |
|||
$PALANG['pAdminCreate_admin_result_succes'] = 'Admin angelegt!'; |
|||
$PALANG['pAdminCreate_admin_address'] = 'Domain'; |
|||
|
|||
$PALANG['pAdminEdit_admin_welcome'] = 'Domain Admin editieren'; |
|||
$PALANG['pAdminEdit_admin_username'] = 'Admin'; |
|||
$PALANG['pAdminEdit_admin_password'] = 'Passwort'; |
|||
$PALANG['pAdminEdit_admin_password2'] = 'Passwort (nochmal)'; |
|||
$PALANG['pAdminEdit_admin_password_text_error'] = '<font color="red">Die beiden Passwörter sind nicht identisch<br />Oder leer!</font>'; |
|||
$PALANG['pAdminEdit_admin_active'] = 'Aktiv'; |
|||
$PALANG['pAdminEdit_admin_button'] = 'Admin editieren'; |
|||
$PALANG['pAdminEdit_admin_result_error'] = '<font color="red">Konnte Admin nicht ändern</font>'; |
|||
$PALANG['pAdminEdit_admin_result_succes'] = 'Admin geändert!'; |
|||
|
|||
$PALANG['pUsersLogin_welcome'] = 'Benutzer bitte hier einloggen, um Weiterleitungen bzw. das Passwort zu ändern.'; |
|||
$PALANG['pUsersLogin_username'] = 'Login (email)'; |
|||
$PALANG['pUsersLogin_password'] = 'Passwort'; |
|||
$PALANG['pUsersLogin_button'] = 'Login'; |
|||
$PALANG['pUsersLogin_username_incorrect'] = 'Falscher Login! Bitte benutzen Sie ihre Email-Adresse als Login'; |
|||
$PALANG['pUsersLogin_password_incorrect'] = 'Falsches Passwort!'; |
|||
|
|||
$PALANG['pUsersMenu_vacation'] = 'Automatische Antwort'; |
|||
$PALANG['pUsersMenu_edit_alias'] = 'Weiterleitung ändern'; |
|||
$PALANG['pUsersMenu_password'] = 'Passwort ändern'; |
|||
|
|||
$PALANG['pUsersMain_welcome'] = 'Ändern Sie Ihre Mailboxeinstellungen hier!'; |
|||
$PALANG['pUsersMain_vacation'] = 'Geben Sie eine "Automatische Antwort" ein. Sinnvoll z.B. während Sie im Urlaub sind'; |
|||
$PALANG['pUsersMain_edit_alias'] = 'Ändern Sie Ihre Weiterleitung.'; |
|||
$PALANG['pUsersMain_password'] = 'Ändern Sie Ihr Passwort.'; |
|||
|
|||
$PALANG['pUsersVacation_welcome'] = 'Automatische Antwort.'; |
|||
$PALANG['pUsersVacation_welcome_text'] = 'Sie haben schon eine Automatische Antwort konfiguriert!'; |
|||
$PALANG['pUsersVacation_subject'] = 'Betreff'; |
|||
$PALANG['pUsersVacation_subject_text'] = 'Ich bin weg...'; |
|||
$PALANG['pUsersVacation_body'] = 'Text'; |
|||
$PALANG['pUsersVacation_body_text'] = <<<EOM |
|||
Ich bin vom <date> bis <date> nicht zu Hause / im Büro. |
|||
In dringenden Fällen setzen Sie sich bitte mit <contact person> in Verbindung. |
|||
Vielen Dank für Ihr Verständniss. |
|||
EOM; |
|||
$PALANG['pUsersVacation_button_away'] = 'Ich gehe weg'; |
|||
$PALANG['pUsersVacation_button_back'] = 'Ich bin zurück'; |
|||
$PALANG['pUsersVacation_result_error'] = '<font color="red">Konnte Ihre Automatische Antwort nicht einstellen!</font>'; |
|||
$PALANG['pUsersVacation_result_succes'] = 'Ihre Automatische Antwort wurde gelöscht!'; |
|||
?> |
|||
@ -0,0 +1,284 @@ |
|||
<?php |
|||
// |
|||
// Language file English |
|||
// |
|||
$PALANG['YES'] = 'YES'; |
|||
$PALANG['NO'] = 'NO'; |
|||
$PALANG['edit'] = 'edit'; |
|||
$PALANG['del'] = 'del'; |
|||
$PALANG['confirm'] = 'Are you sure you want to delete this?'; |
|||
$PALANG['confirm_domain'] = 'Do you really want to delete all records for this domain? This can not be undone!'; |
|||
|
|||
$PALANG['pLogin_welcome'] = 'Mail admins login here to administrate your domain.'; |
|||
$PALANG['pLogin_username'] = 'Login (email)'; |
|||
$PALANG['pLogin_password'] = 'Password'; |
|||
$PALANG['pLogin_button'] = 'Login'; |
|||
$PALANG['pLogin_username_incorrect'] = 'Your login is not correct. Make sure that you login with your email address!'; |
|||
$PALANG['pLogin_password_incorrect'] = 'Your password is not correct!'; |
|||
$PALANG['pLogin_login_users'] = 'Users click here to login to the user section.'; |
|||
|
|||
$PALANG['pMenu_overview'] = 'Overview'; |
|||
$PALANG['pMenu_create_alias'] = 'Add Alias'; |
|||
$PALANG['pMenu_create_mailbox'] = 'Add Mailbox'; |
|||
$PALANG['pMenu_sendmail'] = 'Send Email'; |
|||
$PALANG['pMenu_password'] = 'Password'; |
|||
$PALANG['pMenu_viewlog'] = 'View Log'; |
|||
$PALANG['pMenu_logout'] = 'Logout'; |
|||
|
|||
$PALANG['pMain_welcome'] = 'Welcome to Postfix Admin!'; |
|||
$PALANG['pMain_overview'] = 'List your aliases and mailboxes. You can edit / delete them from here.'; |
|||
$PALANG['pMain_create_alias'] = 'Create a new alias for your domain.'; |
|||
$PALANG['pMain_create_mailbox'] = 'Create a new mailbox for your domain.'; |
|||
$PALANG['pMain_sendmail'] = 'Send an email to one of your newly created mailboxes.'; |
|||
$PALANG['pMain_password'] = 'Change the password for your admin account.'; |
|||
$PALANG['pMain_viewlog'] = 'View the log files.'; |
|||
$PALANG['pMain_logout'] = 'Logout from the system'; |
|||
|
|||
$PALANG['pOverview_button'] = 'Go'; |
|||
$PALANG['pOverview_welcome'] = 'Overview for '; |
|||
$PALANG['pOverview_alias_alias_count'] = 'Aliases'; |
|||
$PALANG['pOverview_alias_mailbox_count'] = 'Mailboxes'; |
|||
$PALANG['pOverview_alias_address'] = 'From'; |
|||
$PALANG['pOverview_alias_goto'] = 'To'; |
|||
$PALANG['pOverview_alias_modified'] = 'Last Modified'; |
|||
$PALANG['pOverview_mailbox_username'] = 'Email'; |
|||
$PALANG['pOverview_mailbox_name'] = 'Name'; |
|||
$PALANG['pOverview_mailbox_quota'] = 'Quota (MB)'; |
|||
$PALANG['pOverview_mailbox_modified'] = 'Last Modified'; |
|||
$PALANG['pOverview_mailbox_active'] = 'Active'; |
|||
|
|||
$PALANG['pOverview_get_domain'] = 'Domain'; |
|||
$PALANG['pOverview_get_aliases'] = 'Aliases'; |
|||
$PALANG['pOverview_get_mailboxes'] = 'Mailboxes'; |
|||
$PALANG['pOverview_get_quota'] = 'Mailbox Quota (MB)'; |
|||
$PALANG['pOverview_get_modified'] = 'Last Modified'; |
|||
|
|||
$PALANG['pDelete_delete_error'] = '<font color="red">Unable to delete the entry '; |
|||
$PALANG['pDelete_domain_error'] = '<font color="red">This domain is not yours '; |
|||
|
|||
$PALANG['pCreate_alias_welcome'] = 'Create a new alias for your domain.'; |
|||
$PALANG['pCreate_alias_address'] = 'Alias'; |
|||
$PALANG['pCreate_alias_address_text_error1'] = '<br /><font color="red">The ALIAS is not valid!</font>'; |
|||
$PALANG['pCreate_alias_address_text_error2'] = '<br /><font color="red">This email address already exists, please choose a different one!</font>'; |
|||
$PALANG['pCreate_alias_address_text_error3'] = '<br /><font color="red">You have reached your limit to create aliases!</font>'; |
|||
$PALANG['pCreate_alias_goto'] = 'To'; |
|||
$PALANG['pCreate_alias_button'] = 'Add Alias'; |
|||
$PALANG['pCreate_alias_goto_text'] = 'Where the mail needs to be send to.'; |
|||
$PALANG['pCreate_alias_goto_text_error'] = 'Where the email needs to go.<br /><font color="red">The TO is not valid!</font>'; |
|||
$PALANG['pCreate_alias_result_error'] = '<font color="red">Unable to add the alias to the alias table!</font>'; |
|||
$PALANG['pCreate_alias_result_succes'] = 'The alias has been added to the alias table!'; |
|||
$PALANG['pCreate_alias_catchall_text'] = 'To create a catch-all use an "*" as alias.<br />For domain to domain forwarding use "*@domain.tld" as to.'; |
|||
|
|||
$PALANG['pEdit_alias_welcome'] = 'Edit an alias for your domain.<br />One entry per line.'; |
|||
$PALANG['pEdit_alias_address'] = 'Alias'; |
|||
$PALANG['pEdit_alias_address_error'] = '<font color="red">Unable to locate alias!</font>'; |
|||
$PALANG['pEdit_alias_goto'] = 'To'; |
|||
$PALANG['pEdit_alias_goto_text_error1'] = '<font color="red">You didn\'t enter anything at To</font>'; |
|||
$PALANG['pEdit_alias_goto_text_error2'] = '<font color="red">The email address that you have entered is not valid: '; |
|||
$PALANG['pEdit_alias_domain_error'] = '<font color="red">This domain is not yours: '; |
|||
$PALANG['pEdit_alias_button'] = 'Edit Alias'; |
|||
$PALANG['pEdit_alias_result_error'] = '<font color="red">Unable to modify the alias!</font>'; |
|||
|
|||
$PALANG['pCreate_mailbox_welcome'] = 'Create a new local mailbox for your domain.'; |
|||
$PALANG['pCreate_mailbox_username'] = 'Username'; |
|||
$PALANG['pCreate_mailbox_username_text_error1'] = '<br /><font color="red">The EMAIL is not valid!</font>'; |
|||
$PALANG['pCreate_mailbox_username_text_error2'] = '<br /><font color="red">This email address already exists, please choose a different one!</font>'; |
|||
$PALANG['pCreate_mailbox_username_text_error3'] = '<br /><font color="red">You have reached your limit to create mailboxes!</font>'; |
|||
$PALANG['pCreate_mailbox_password'] = 'Password'; |
|||
$PALANG['pCreate_mailbox_password2'] = 'Password (again)'; |
|||
$PALANG['pCreate_mailbox_password_text'] = 'Password for POP3/IMAP'; |
|||
$PALANG['pCreate_mailbox_password_text_error'] = 'Password for POP3/IMAP<br /><font color="red">The passwords that you supplied don\'t match!<br />Or are empty!</font>'; |
|||
$PALANG['pCreate_mailbox_name'] = 'Name'; |
|||
$PALANG['pCreate_mailbox_name_text'] = 'Full name'; |
|||
$PALANG['pCreate_mailbox_quota'] = 'Quota'; |
|||
$PALANG['pCreate_mailbox_quota_text'] = 'MB'; |
|||
$PALANG['pCreate_mailbox_quota_text_error'] = 'MB<br /><font color="red">The quota that you specified is to high!</font>'; |
|||
$PALANG['pCreate_mailbox_active'] = 'Active'; |
|||
$PALANG['pCreate_mailbox_mail'] = 'Create mailbox'; |
|||
$PALANG['pCreate_mailbox_button'] = 'Add Mailbox'; |
|||
$PALANG['pCreate_mailbox_result_error'] = '<font color="red">Unable to add the mailbox to the mailbox table!</font>'; |
|||
$PALANG['pCreate_mailbox_result_succes'] = 'The mailbox has been added to the mailbox table!'; |
|||
|
|||
$PALANG['pEdit_mailbox_welcome'] = 'Edit a mailbox for your domain.'; |
|||
$PALANG['pEdit_mailbox_username'] = 'Username'; |
|||
$PALANG['pEdit_mailbox_username_error'] = '<font color="red">Unable to locate mailbox!</font>'; |
|||
$PALANG['pEdit_mailbox_password'] = 'New Password'; |
|||
$PALANG['pEdit_mailbox_password2'] = 'New Password (again)'; |
|||
$PALANG['pEdit_mailbox_password_text_error'] = '<font color="red">The passwords that you supplied don\'t match!</font>'; |
|||
$PALANG['pEdit_mailbox_name'] = 'Name'; |
|||
$PALANG['pEdit_mailbox_quota'] = 'Quota'; |
|||
$PALANG['pEdit_mailbox_quota_text'] = 'MB'; |
|||
$PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><font color="red">The quota that you specified is to high!</font>'; |
|||
$PALANG['pEdit_mailbox_domain_error'] = '<font color="red">This domain is not yours: '; |
|||
$PALANG['pEdit_mailbox_button'] = 'Edit Mailbox'; |
|||
$PALANG['pEdit_mailbox_result_error'] = '<font color="red">Unable to change the password!</font>'; |
|||
|
|||
$PALANG['pPassword_welcome'] = 'Change your login password.'; |
|||
$PALANG['pPassword_admin'] = 'Login'; |
|||
$PALANG['pPassword_admin_text_error'] = '<font color="red">The LOGIN that you supplied doesn\'t match a mailbox!</font>'; |
|||
$PALANG['pPassword_password_current'] = 'Current Password'; |
|||
$PALANG['pPassword_password_current_text_error'] = '<font color="red">You didn\'t supply your current password!</font>'; |
|||
$PALANG['pPassword_password'] = 'New Password'; |
|||
$PALANG['pPassword_password2'] = 'New Password (again)'; |
|||
$PALANG['pPassword_password_text_error'] = '<font color="red">The passwords that you supplied don\'t match!<br />Or are empty!</font>'; |
|||
$PALANG['pPassword_button'] = 'Change Password'; |
|||
$PALANG['pPassword_result_error'] = '<font color="red">Unable to change your password!</font>'; |
|||
$PALANG['pPassword_result_succes'] = 'Your password has been changed!'; |
|||
|
|||
$PALANG['pViewlog_welcome'] = 'View the last 10 actions for '; |
|||
$PALANG['pViewlog_timestamp'] = 'Timestamp'; |
|||
$PALANG['pViewlog_username'] = 'Admin'; |
|||
$PALANG['pViewlog_domain'] = 'Domain'; |
|||
$PALANG['pViewlog_action'] = 'Action'; |
|||
$PALANG['pViewlog_data'] = 'Data'; |
|||
|
|||
$PALANG['pViewlog_button'] = 'Go'; |
|||
$PALANG['pViewlog_result_error'] = '<font color="red">Unable to find the logs!</font>'; |
|||
|
|||
$PALANG['pSendmail_welcome'] = 'Send an email.'; |
|||
$PALANG['pSendmail_admin'] = 'From'; |
|||
$PALANG['pSendmail_to'] = 'To'; |
|||
$PALANG['pSendmail_to_text_error'] = '<font color="red">To is empty or is not a valid email address!</font>'; |
|||
$PALANG['pSendmail_subject'] = 'Subject'; |
|||
$PALANG['pSendmail_subject_text'] = 'Welcome'; |
|||
$PALANG['pSendmail_body'] = 'Body'; |
|||
$PALANG['pSendmail_body_text'] = <<<EOM |
|||
Hi, |
|||
|
|||
Welcome to your new account. |
|||
EOM; |
|||
$PALANG['pSendmail_button'] = 'Send Message'; |
|||
$PALANG['pSendmail_result_error'] = '<font color="red">Unable to create mailbox!</font>'; |
|||
$PALANG['pSendmail_result_succes'] = 'The mailbox has been created!'; |
|||
|
|||
$PALANG['pVcp_welcome'] = 'Change your mailbox password.'; |
|||
$PALANG['pVcp_username'] = 'Email'; |
|||
$PALANG['pVcp_username_text_error'] = '<font color="red">The EMAIL that you supplied doesn\'t match a mailbox!</font>'; |
|||
$PALANG['pVcp_password_current'] = 'Current Password'; |
|||
$PALANG['pVcp_password_current_text_error'] = '<font color="red">You didn\'t supply your current password!</font>'; |
|||
$PALANG['pVcp_password'] = 'New Password'; |
|||
$PALANG['pVcp_password2'] = 'New Password (again)'; |
|||
$PALANG['pVcp_password_text_error'] = '<font color="red">The passwords that you supplied don\'t match!<br />Or are empty!</font>'; |
|||
$PALANG['pVcp_button'] = 'Change Password'; |
|||
$PALANG['pVcp_result_error'] = '<font color="red">Unable to change your password!</font>'; |
|||
$PALANG['pVcp_result_succes'] = 'Your password has been changed!'; |
|||
|
|||
$PALANG['pAdminMenu_list_admin'] = 'Admin List'; |
|||
$PALANG['pAdminMenu_list_domain'] = 'Domain List'; |
|||
$PALANG['pAdminMenu_list_virtual'] = 'Virtual List'; |
|||
$PALANG['pAdminMenu_viewlog'] = 'View Log'; |
|||
$PALANG['pAdminMenu_backup'] = 'Backup'; |
|||
$PALANG['pAdminMenu_create_domain_admins'] = 'Domain Admins'; |
|||
$PALANG['pAdminMenu_create_admin'] = 'New Admin'; |
|||
$PALANG['pAdminMenu_create_domain'] = 'New Domain'; |
|||
$PALANG['pAdminMenu_create_alias'] = 'Add Alias'; |
|||
$PALANG['pAdminMenu_create_mailbox'] = 'Add Mailbox'; |
|||
|
|||
$PALANG['pAdminList_admin_domain'] = 'Domain'; |
|||
$PALANG['pAdminList_admin_username'] = 'Admin'; |
|||
$PALANG['pAdminList_admin_count'] = 'Domains'; |
|||
$PALANG['pAdminList_admin_modified'] = 'Last Modified'; |
|||
$PALANG['pAdminList_admin_active'] = 'Active'; |
|||
|
|||
$PALANG['pAdminList_domain_domain'] = 'Domain'; |
|||
$PALANG['pAdminList_domain_description'] = 'Description'; |
|||
$PALANG['pAdminList_domain_aliases'] = 'Aliases'; |
|||
$PALANG['pAdminList_domain_mailboxes'] = 'Mailboxes'; |
|||
$PALANG['pAdminList_domain_maxquota'] = 'Max Quota (MB)'; |
|||
$PALANG['pAdminList_domain_modified'] = 'Last Modified'; |
|||
$PALANG['pAdminList_domain_active'] = 'Active'; |
|||
|
|||
$PALANG['pAdminList_virtual_button'] = 'Go'; |
|||
$PALANG['pAdminList_virtual_welcome'] = 'Overview for '; |
|||
$PALANG['pAdminList_virtual_alias_alias_count'] = 'Aliases'; |
|||
$PALANG['pAdminList_virtual_alias_mailbox_count'] = 'Mailboxes'; |
|||
$PALANG['pAdminList_virtual_alias_address'] = 'From'; |
|||
$PALANG['pAdminList_virtual_alias_goto'] = 'To'; |
|||
$PALANG['pAdminList_virtual_alias_modified'] = 'Last Modified'; |
|||
$PALANG['pAdminList_virtual_mailbox_username'] = 'Email'; |
|||
$PALANG['pAdminList_virtual_mailbox_name'] = 'Name'; |
|||
$PALANG['pAdminList_virtual_mailbox_quota'] = 'Quota (MB)'; |
|||
$PALANG['pAdminList_virtual_mailbox_modified'] = 'Last Modified'; |
|||
$PALANG['pAdminList_virtual_mailbox_active'] = 'Active'; |
|||
|
|||
$PALANG['pAdminCreate_domain_welcome'] = 'Add a new domain'; |
|||
$PALANG['pAdminCreate_domain_domain'] = 'Domain'; |
|||
$PALANG['pAdminCreate_domain_domain_text_error'] = '<font color="red">The domain already exists!</font>'; |
|||
$PALANG['pAdminCreate_domain_description'] = 'Description'; |
|||
$PALANG['pAdminCreate_domain_aliases'] = 'Aliases'; |
|||
$PALANG['pAdminCreate_domain_aliases_text'] = '0 = disable | -1 = unlimited'; |
|||
$PALANG['pAdminCreate_domain_mailboxes'] = 'Mailboxes'; |
|||
$PALANG['pAdminCreate_domain_mailboxes_text'] = '0 = disable | -1 = unlimited'; |
|||
$PALANG['pAdminCreate_domain_maxquota'] = 'Max Quota'; |
|||
$PALANG['pAdminCreate_domain_maxquota_text'] = 'MB<br /> 0 = disable | -1 = unlimited'; |
|||
$PALANG['pAdminCreate_domain_defaultaliases'] = 'Add default mail aliases'; |
|||
$PALANG['pAdminCreate_domain_button'] = 'Add Domain'; |
|||
$PALANG['pAdminCreate_domain_result_error'] = '<font color="red">Unable to add domain!</font>'; |
|||
$PALANG['pAdminCreate_domain_result_succes'] = 'Domain has been added!'; |
|||
|
|||
$PALANG['pAdminEdit_domain_welcome'] = 'Edit a domain'; |
|||
$PALANG['pAdminEdit_domain_domain'] = 'Domain'; |
|||
$PALANG['pAdminEdit_domain_description'] = 'Description'; |
|||
$PALANG['pAdminEdit_domain_aliases'] = 'Aliases'; |
|||
$PALANG['pAdminCreate_domain_aliases_text'] = '0 = disable | -1 = unlimited'; |
|||
$PALANG['pAdminEdit_domain_mailboxes'] = 'Mailboxes'; |
|||
$PALANG['pAdminCreate_domain_mailboxes_text'] = '0 = disable | -1 = unlimited'; |
|||
$PALANG['pAdminEdit_domain_maxquota'] = 'Max Quota'; |
|||
$PALANG['pAdminCreate_domain_maxquota_text'] = 'MB<br /> 0 = disable | -1 = unlimited'; |
|||
$PALANG['pAdminEdit_domain_active'] = 'Active'; |
|||
$PALANG['pAdminEdit_domain_button'] = 'Edit Domain'; |
|||
$PALANG['pAdminEdit_domain_result_error'] = '<font color="red">Unable to modify domain!</font>'; |
|||
|
|||
$PALANG['pAdminCreate_admin_welcome'] = 'Add a new domain admin'; |
|||
$PALANG['pAdminCreate_admin_username'] = 'Admin'; |
|||
$PALANG['pAdminCreate_admin_username_text'] = 'Email address'; |
|||
$PALANG['pAdminCreate_admin_username_text_error1'] = 'Email address<br /><font color="red">Admin is not a valid email address!</font>'; |
|||
$PALANG['pAdminCreate_admin_username_text_error2'] = 'Email address<br /><font color="red">The admin already exists or is not valid</font>'; |
|||
$PALANG['pAdminCreate_admin_password'] = 'Password'; |
|||
$PALANG['pAdminCreate_admin_password2'] = 'Password (again)'; |
|||
$PALANG['pAdminCreate_admin_password_text_error'] = '<font color="red">The passwords that you supplied don\'t match!<br />Or are empty!</font>'; |
|||
$PALANG['pAdminCreate_admin_button'] = 'Add Admin'; |
|||
$PALANG['pAdminCreate_admin_result_error'] = '<font color="red">Unable to add admin!</font>'; |
|||
$PALANG['pAdminCreate_admin_result_succes'] = 'Admin has been added!'; |
|||
$PALANG['pAdminCreate_admin_address'] = 'Domain'; |
|||
|
|||
$PALANG['pAdminEdit_admin_welcome'] = 'Edit a domain admin'; |
|||
$PALANG['pAdminEdit_admin_username'] = 'Admin'; |
|||
$PALANG['pAdminEdit_admin_password'] = 'Password'; |
|||
$PALANG['pAdminEdit_admin_password2'] = 'Password (again)'; |
|||
$PALANG['pAdminEdit_admin_password_text_error'] = '<font color="red">The passwords that you supplied don\'t match!<br />Or are empty!</font>'; |
|||
$PALANG['pAdminEdit_admin_active'] = 'Active'; |
|||
$PALANG['pAdminEdit_admin_button'] = 'Edit Admin'; |
|||
$PALANG['pAdminEdit_admin_result_error'] = '<font color="red">Unable to modify admin!</font>'; |
|||
$PALANG['pAdminEdit_admin_result_succes'] = 'Admin has been modified!'; |
|||
|
|||
$PALANG['pUsersLogin_welcome'] = 'Mailbox users login to change your password and aliases.'; |
|||
$PALANG['pUsersLogin_username'] = 'Login (email)'; |
|||
$PALANG['pUsersLogin_password'] = 'Password'; |
|||
$PALANG['pUsersLogin_button'] = 'Login'; |
|||
$PALANG['pUsersLogin_username_incorrect'] = 'Your login is not correct. Make sure that you login with your email address!'; |
|||
$PALANG['pUsersLogin_password_incorrect'] = 'Your password is not correct!'; |
|||
|
|||
$PALANG['pUsersMenu_vacation'] = 'Auto Response'; |
|||
$PALANG['pUsersMenu_edit_alias'] = 'Change your forward'; |
|||
$PALANG['pUsersMenu_password'] = 'Change Password'; |
|||
|
|||
$PALANG['pUsersMain_welcome'] = 'Change your mailbox settings here!'; |
|||
$PALANG['pUsersMain_vacation'] = 'Set an "out of office" message or auto responder for your mail.'; |
|||
$PALANG['pUsersMain_edit_alias'] = 'Change your email forwarding.'; |
|||
$PALANG['pUsersMain_password'] = 'Change your current password.'; |
|||
|
|||
$PALANG['pUsersVacation_welcome'] = 'Auto Response.'; |
|||
$PALANG['pUsersVacation_welcome_text'] = 'You already have an auto response configured!'; |
|||
$PALANG['pUsersVacation_subject'] = 'Subject'; |
|||
$PALANG['pUsersVacation_subject_text'] = 'Out of Office'; |
|||
$PALANG['pUsersVacation_body'] = 'Body'; |
|||
$PALANG['pUsersVacation_body_text'] = <<<EOM |
|||
I will be away from <date> until <date>. |
|||
For urgent matters you can contact <contact person>. |
|||
EOM; |
|||
$PALANG['pUsersVacation_button_away'] = 'Going Away'; |
|||
$PALANG['pUsersVacation_button_back'] = 'Coming Back'; |
|||
$PALANG['pUsersVacation_result_error'] = '<font color="red">Unable to update your auto response settings!</font>'; |
|||
$PALANG['pUsersVacation_result_succes'] = 'Your auto response has been removed!'; |
|||
?> |
|||
@ -0,0 +1,284 @@ |
|||
<?php |
|||
// |
|||
// Language file Spanish |
|||
// |
|||
$PALANG['YES'] = 'SI'; |
|||
$PALANG['NO'] = 'NO'; |
|||
$PALANG['edit'] = 'editar'; |
|||
$PALANG['del'] = 'borrar'; |
|||
$PALANG['confirm'] = '¿Está seguro de que desea borrarlo?'; |
|||
$PALANG['confirm_domain'] = '¿Está seguro de que desea borrar todos los registros de este dominio? ¡Esto no puede ser deshecho!'; |
|||
$PALANG['pLogin_welcome'] = 'Login de administrador para administración de dominios.'; |
|||
$PALANG['pLogin_username'] = 'Usuario (e-mail)'; |
|||
$PALANG['pLogin_password'] = 'Contraseña'; |
|||
$PALANG['pLogin_button'] = 'Usuario'; |
|||
$PALANG['pLogin_username_incorrect'] = 'El login no es correcto. Asegurese de que ha hecho login con su e-mail.'; |
|||
$PALANG['pLogin_password_incorrect'] = '¡Su contraseña no es correcta!'; |
|||
$PALANG['pLogin_login_users'] = 'Login para ir a la sección de usuarios.'; |
|||
$PALANG['pMenu_overview'] = 'Resumen'; |
|||
$PALANG['pMenu_create_alias'] = 'Añadir alias'; |
|||
$PALANG['pMenu_create_mailbox'] = 'Añadir buzón'; |
|||
$PALANG['pMenu_sendmail'] = 'Enviar e-mail'; |
|||
$PALANG['pMenu_password'] = 'Contraseña'; |
|||
$PALANG['pMenu_viewlog'] = 'Ver Logs'; |
|||
$PALANG['pMenu_logout'] = 'Salir'; |
|||
|
|||
$PALANG['pMain_welcome'] = '¡Bienvenido a Postfix Admin!'; |
|||
$PALANG['pMain_overview'] = 'Listado de sus alias y buzones. Puede editarlos / borrarlos desde aquí.'; |
|||
$PALANG['pMain_create_alias'] = 'Creación de un nuevo alias para su dominio.'; |
|||
$PALANG['pMain_create_mailbox'] = 'Creación de un nuevo buzón para su dominio.'; |
|||
$PALANG['pMain_sendmail'] = 'Enviar un email a uno de los buzones recientemente creados.'; |
|||
$PALANG['pMain_password'] = 'Cambiar la contraseña para su cuenta de administración.'; |
|||
$PALANG['pMain_viewlog'] = 'Ver Logs.'; |
|||
$PALANG['pMain_logout'] = 'Salir.'; |
|||
|
|||
$PALANG['pOverview_button'] = 'Ir'; |
|||
$PALANG['pOverview_welcome'] = 'Resumen de '; |
|||
$PALANG['pOverview_alias_alias_count'] = 'Alias'; |
|||
$PALANG['pOverview_alias_mailbox_count'] = 'Buzones'; |
|||
$PALANG['pOverview_alias_address'] = 'De'; |
|||
$PALANG['pOverview_alias_goto'] = 'Destino'; |
|||
$PALANG['pOverview_alias_modified'] = 'Última modificación'; |
|||
$PALANG['pOverview_mailbox_username'] = 'E-mail'; |
|||
$PALANG['pOverview_mailbox_name'] = 'Nombre'; |
|||
$PALANG['pOverview_mailbox_quota'] = 'Cuota (MB)'; |
|||
$PALANG['pOverview_mailbox_modified'] = 'Última modificación'; |
|||
$PALANG['pOverview_mailbox_active'] = 'Activo'; |
|||
|
|||
$PALANG['pOverview_get_domain'] = 'Dominio'; |
|||
$PALANG['pOverview_get_aliases'] = 'Alias'; |
|||
$PALANG['pOverview_get_mailboxes'] = 'Buzones'; |
|||
$PALANG['pOverview_get_quota'] = 'Cuota de buzón (MB)'; |
|||
$PALANG['pOverview_get_modified'] = 'Última Modificación'; |
|||
|
|||
$PALANG['pDelete_delete_error'] = '<font color="red">Imposible borrar el registro '; |
|||
$PALANG['pDelete_domain_error'] = '<font color="red">Este dominio no le pertenece '; |
|||
|
|||
$PALANG['pCreate_alias_welcome'] = 'Crear un nuevo alias para el dominio.'; |
|||
$PALANG['pCreate_alias_address'] = 'Alias'; |
|||
$PALANG['pCreate_alias_address_text_error1'] = '<br /><font color="red">¡El ALIAS no es válido!</font>'; |
|||
$PALANG['pCreate_alias_address_text_error2'] = '<br /><font color="red">¡Esta dirección ya existe, elija otra diferente por favor!</font>'; |
|||
$PALANG['pCreate_alias_address_text_error3'] = '<br /><font color="red">¡Ha llegado a su límite de creación de alias!</font>'; |
|||
$PALANG['pCreate_alias_goto'] = 'Destino'; |
|||
$PALANG['pCreate_alias_button'] = 'Añadir alias'; |
|||
$PALANG['pCreate_alias_goto_text'] = 'A donde debe de ser enviado el e-mail.'; |
|||
$PALANG['pCreate_alias_goto_text_error'] = 'A donde debe de ser enviado el e-mail.<br /><font color="red">¡El PARA no es válido!</font>'; |
|||
$PALANG['pCreate_alias_result_error'] = '<font color="red">¡No es posible añadir el alias a la tabla de alias!</font>'; |
|||
$PALANG['pCreate_alias_result_succes'] = '¡El alias ha sido añadido a la tabla de alias!'; |
|||
$PALANG['pCreate_alias_catchall_text'] = 'Para crear un alias general use "*" como alias.<br />Para una redirección de dominio a dominio, use "*@domain.tld" como Destino.'; |
|||
|
|||
$PALANG['pEdit_alias_welcome'] = 'Edite un alias para su dominio.<br />Una entrada por línea.'; |
|||
$PALANG['pEdit_alias_address'] = 'Alias'; |
|||
$PALANG['pEdit_alias_address_error'] = '<font color="red">¡Imposible de localizar el alias!</font>'; |
|||
$PALANG['pEdit_alias_goto'] = 'Destino'; |
|||
$PALANG['pEdit_alias_goto_text_error1'] = '<font color="red">No ha introducido nada en el destino</font>'; |
|||
$PALANG['pEdit_alias_goto_text_error2'] = '<font color="red">La dirección de e-mail introducida no es válida: '; |
|||
$PALANG['pEdit_alias_domain_error'] = '<font color="red">Este dominio no le pertenece: '; |
|||
$PALANG['pEdit_alias_button'] = 'Editar alias'; |
|||
$PALANG['pEdit_alias_result_error'] = '<font color="red">¡Imposible modificar el alias!</font>'; |
|||
|
|||
$PALANG['pCreate_mailbox_welcome'] = 'Crear un nuevo buzón para su dominio.'; |
|||
$PALANG['pCreate_mailbox_username'] = 'Usuario'; |
|||
$PALANG['pCreate_mailbox_username_text_error1'] = '<br /><font color="red">¡El e-mail no es válido!</font>'; |
|||
$PALANG['pCreate_mailbox_username_text_error2'] = '<br /><font color="red">¡Este e-mail ya existe, escoja uno diferente por favor!</font>'; |
|||
$PALANG['pCreate_mailbox_username_text_error3'] = '<br /><font color="red">¡Ha llegado al límite de creación de buzones!</font>'; |
|||
$PALANG['pCreate_mailbox_password'] = 'Contraseña'; |
|||
$PALANG['pCreate_mailbox_password2'] = 'Contraseña (repetir)'; |
|||
$PALANG['pCreate_mailbox_password_text'] = 'Contraseña para POP3/IMAP'; |
|||
$PALANG['pCreate_mailbox_password_text_error'] = 'Contraseña para POP3/IMAP<br /><font color="red">¡Las contraseñas introducidas no coinciden<br />o están en blanco!</font>'; |
|||
$PALANG['pCreate_mailbox_name'] = 'Nombre'; |
|||
$PALANG['pCreate_mailbox_name_text'] = 'Nombre completo'; |
|||
$PALANG['pCreate_mailbox_quota'] = 'Cuota'; |
|||
$PALANG['pCreate_mailbox_quota_text'] = 'MB'; |
|||
$PALANG['pCreate_mailbox_quota_text_error'] = 'MB<br /><font color="red">¡La cuota especificada es demasiado alta!</font>'; |
|||
$PALANG['pCreate_mailbox_active'] = 'Activo'; |
|||
$PALANG['pCreate_mailbox_mail'] = 'Crear buzón'; |
|||
$PALANG['pCreate_mailbox_button'] = 'Añadir buzón'; |
|||
$PALANG['pCreate_mailbox_result_error'] = '<font color="red">¡Imposible añadir un buzón a la tabla de buzones!</font>'; |
|||
$PALANG['pCreate_mailbox_result_succes'] = '¡El buzón ha sido añadido a la tabla de buzones!'; |
|||
|
|||
$PALANG['pEdit_mailbox_welcome'] = 'Editar un buzón para su dominio.'; |
|||
$PALANG['pEdit_mailbox_username'] = 'Usuario'; |
|||
$PALANG['pEdit_mailbox_username_error'] = '<font color="red">¡Imposible localizar el buzón!</font>'; |
|||
$PALANG['pEdit_mailbox_password'] = 'Nueva contraseña'; |
|||
$PALANG['pEdit_mailbox_password2'] = 'Nueva contraseña (repetir)'; |
|||
$PALANG['pEdit_mailbox_password_text_error'] = '<font color="red">¡Las contraseñas introducidas no coinciden!</font>'; |
|||
$PALANG['pEdit_mailbox_name'] = 'Nombre'; |
|||
$PALANG['pEdit_mailbox_quota'] = 'Cuota'; |
|||
$PALANG['pEdit_mailbox_quota_text'] = 'MB'; |
|||
$PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><font color="red">¡La cuota especificada es demasiado alta!</font>'; |
|||
$PALANG['pEdit_mailbox_domain_error'] = '<font color="red">Este dominio no le pertenece: '; |
|||
$PALANG['pEdit_mailbox_button'] = 'Editar buzón'; |
|||
$PALANG['pEdit_mailbox_result_error'] = '<font color="red">¡Imposible cambiar la contraseña!</font>'; |
|||
|
|||
$PALANG['pPassword_welcome'] = 'Cambie su contraseña de login.'; |
|||
$PALANG['pPassword_admin'] = 'Login'; |
|||
$PALANG['pPassword_admin_text_error'] = '<font color="red">¡El LOGIN suministrado no coincide con ningún buzón!</font>'; |
|||
$PALANG['pPassword_password_current'] = 'Contraseña actual'; |
|||
$PALANG['pPassword_password_current_text_error'] = '<font color="red">¡No ha introducido la contraseña actual!</font>'; |
|||
$PALANG['pPassword_password'] = 'Nueva contraseña'; |
|||
$PALANG['pPassword_password2'] = 'Nueva contraseña (repetir)'; |
|||
$PALANG['pPassword_password_text_error'] = '<font color="red">¡Las contraseñas introducidas no coinciden<br />o están en blanco!</font>'; |
|||
$PALANG['pPassword_button'] = 'Cambiar contraseña'; |
|||
$PALANG['pPassword_result_error'] = '<font color="red">¡Imposible cambiar la contraseña!</font>'; |
|||
$PALANG['pPassword_result_succes'] = '¡Su contraseña ha sido cambiada!'; |
|||
|
|||
$PALANG['pViewlog_welcome'] = 'Ver las últimas 10 acciones para '; |
|||
$PALANG['pViewlog_timestamp'] = 'Fecha/Hora'; |
|||
$PALANG['pViewlog_username'] = 'Administrador'; |
|||
$PALANG['pViewlog_domain'] = 'Dominio'; |
|||
$PALANG['pViewlog_action'] = 'Acción'; |
|||
$PALANG['pViewlog_data'] = 'Datos'; |
|||
|
|||
$PALANG['pViewlog_button'] = 'Ir'; |
|||
$PALANG['pViewlog_result_error'] = '<font color="red">¡Imposible encontrar los logs!</font>'; |
|||
|
|||
$PALANG['pSendmail_welcome'] = 'Enviar un e-mail.'; |
|||
$PALANG['pSendmail_admin'] = 'De'; |
|||
$PALANG['pSendmail_to'] = 'Destino'; |
|||
$PALANG['pSendmail_to_text_error'] = '<font color="red">¡La dirección destino está vacía o es una dirección inválida!</font>'; |
|||
$PALANG['pSendmail_subject'] = 'Asunto'; |
|||
$PALANG['pSendmail_subject_text'] = 'Bienvenido'; |
|||
$PALANG['pSendmail_body'] = 'Cuerpo'; |
|||
$PALANG['pSendmail_body_text'] = <<<EOM |
|||
Hola, |
|||
|
|||
Bienvenido a su nueva cuenta de correo. |
|||
|
|||
EOM; |
|||
$PALANG['pSendmail_button'] = 'Enviar mensaje'; |
|||
$PALANG['pSendmail_result_error'] = '<font color="red">¡Imposible crear el buzón!</font>'; |
|||
$PALANG['pSendmail_result_succes'] = '¡El buzón ha sido creado!'; |
|||
|
|||
$PALANG['pVcp_welcome'] = 'Cambie la contraseña de su correo.'; |
|||
$PALANG['pVcp_username'] = 'E-mail'; |
|||
$PALANG['pVcp_username_text_error'] = '<font color="red">¡El e-mail introducido no coincide con ningún buzón!</font>'; |
|||
$PALANG['pVcp_password_current'] = 'Contraseña actual'; |
|||
$PALANG['pVcp_password_current_text_error'] = '<font color="red">¡No ha introducido la contraseña actual!</font>'; |
|||
$PALANG['pVcp_password'] = 'Nueva contraseña'; |
|||
$PALANG['pVcp_password2'] = 'Nueva contraseña (repetir)'; |
|||
$PALANG['pVcp_password_text_error'] = '<font color="red">¡Las contraseñas introducidas no coinciden<br />o están en blanco!</font>'; |
|||
$PALANG['pVcp_button'] = 'Cambiar la contraseña'; |
|||
$PALANG['pVcp_result_error'] = '<font color="red">¡Imposible cambiar la contraseña!</font>'; |
|||
$PALANG['pVcp_result_succes'] = '¡Su contraseña ha sido cambiada!'; |
|||
|
|||
$PALANG['pAdminMenu_list_admin'] = 'Lista de administradores'; |
|||
$PALANG['pAdminMenu_list_domain'] = 'Lista de dominios'; |
|||
$PALANG['pAdminMenu_list_virtual'] = 'Lista de direcciones virtuales'; |
|||
$PALANG['pAdminMenu_viewlog'] = 'Ver Logs'; |
|||
$PALANG['pAdminMenu_backup'] = 'Backup'; |
|||
$PALANG['pAdminMenu_create_domain_admins'] = 'Administradores de dominio'; |
|||
$PALANG['pAdminMenu_create_admin'] = 'Nuevo administrador'; |
|||
$PALANG['pAdminMenu_create_domain'] = 'Nuevo dominio'; |
|||
$PALANG['pAdminMenu_create_alias'] = 'Añadir alias'; |
|||
$PALANG['pAdminMenu_create_mailbox'] = 'Añadir buzón'; |
|||
|
|||
$PALANG['pAdminList_admin_domain'] = 'Dominio'; |
|||
$PALANG['pAdminList_admin_username'] = 'Administrador'; |
|||
$PALANG['pAdminList_admin_count'] = 'Dominios'; |
|||
$PALANG['pAdminList_admin_modified'] = 'Última Modificación'; |
|||
$PALANG['pAdminList_admin_active'] = 'Activo'; |
|||
|
|||
$PALANG['pAdminList_domain_domain'] = 'Dominio'; |
|||
$PALANG['pAdminList_domain_description'] = 'Descripción'; |
|||
$PALANG['pAdminList_domain_aliases'] = 'Alias'; |
|||
$PALANG['pAdminList_domain_mailboxes'] = 'Buzones'; |
|||
$PALANG['pAdminList_domain_maxquota'] = 'Cuota Máxima (MB)'; |
|||
$PALANG['pAdminList_domain_modified'] = 'Última Modificación'; |
|||
$PALANG['pAdminList_domain_active'] = 'Activo'; |
|||
|
|||
$PALANG['pAdminList_virtual_button'] = 'Ir'; |
|||
$PALANG['pAdminList_virtual_welcome'] = 'Resumen de '; |
|||
$PALANG['pAdminList_virtual_alias_alias_count'] = 'Alias'; |
|||
$PALANG['pAdminList_virtual_alias_mailbox_count'] = 'Buzones'; |
|||
$PALANG['pAdminList_virtual_alias_address'] = 'De'; |
|||
$PALANG['pAdminList_virtual_alias_goto'] = 'Destino'; |
|||
$PALANG['pAdminList_virtual_alias_modified'] = 'Última Modificación'; |
|||
$PALANG['pAdminList_virtual_mailbox_username'] = 'E-mail'; |
|||
$PALANG['pAdminList_virtual_mailbox_name'] = 'Nombre'; |
|||
$PALANG['pAdminList_virtual_mailbox_quota'] = 'Cuota (MB)'; |
|||
$PALANG['pAdminList_virtual_mailbox_modified'] = 'Última Modificación'; |
|||
$PALANG['pAdminList_virtual_mailbox_active'] = 'Activo'; |
|||
|
|||
$PALANG['pAdminCreate_domain_welcome'] = 'Añadir nuevo dominio'; |
|||
$PALANG['pAdminCreate_domain_domain'] = 'Dominio'; |
|||
$PALANG['pAdminCreate_domain_domain_text_error'] = '<font color="red">¡El dominio ya existe!</font>'; |
|||
$PALANG['pAdminCreate_domain_description'] = 'Descripción'; |
|||
$PALANG['pAdminCreate_domain_aliases'] = 'Alias'; |
|||
$PALANG['pAdminCreate_domain_aliases_text'] = '0 = deshabilitar | -1 = ilimitado'; |
|||
$PALANG['pAdminCreate_domain_mailboxes'] = 'Buzones'; |
|||
$PALANG['pAdminCreate_domain_mailboxes_text'] = '0 = deshabilitar | -1 = ilimitado'; |
|||
$PALANG['pAdminCreate_domain_maxquota'] = 'Cuota máxima'; |
|||
$PALANG['pAdminCreate_domain_maxquota_text'] = 'MB<br /> 0 = deshabilitar | -1 = ilimitado'; |
|||
$PALANG['pAdminCreate_domain_defaultaliases'] = 'Añadir alias por defecto'; |
|||
$PALANG['pAdminCreate_domain_button'] = 'Añadir dominio'; |
|||
$PALANG['pAdminCreate_domain_result_error'] = '<font color="red">¡Imposible añadir el dominio!</font>'; |
|||
$PALANG['pAdminCreate_domain_result_succes'] = '¡El dominio ha sido añadido!'; |
|||
|
|||
$PALANG['pAdminEdit_domain_welcome'] = 'Editar un dominio'; |
|||
$PALANG['pAdminEdit_domain_domain'] = 'Dominio'; |
|||
$PALANG['pAdminEdit_domain_description'] = 'Descripción'; |
|||
$PALANG['pAdminEdit_domain_aliases'] = 'Alias'; |
|||
$PALANG['pAdminCreate_domain_aliases_text'] = '0 = deshabilitar | -1 = ilimitado'; |
|||
$PALANG['pAdminEdit_domain_mailboxes'] = 'Buzones'; |
|||
$PALANG['pAdminCreate_domain_mailboxes_text'] = '0 = deshabilitar | -1 = ilimitado'; |
|||
$PALANG['pAdminEdit_domain_maxquota'] = 'Cuota máxima'; |
|||
$PALANG['pAdminCreate_domain_maxquota_text'] = 'MB<br /> 0 = deshabilitar | -1 = ilimitado'; |
|||
$PALANG['pAdminEdit_domain_active'] = 'Activo'; |
|||
$PALANG['pAdminEdit_domain_button'] = 'Editar dominio'; |
|||
$PALANG['pAdminEdit_domain_result_error'] = '<font color="red">¡Imposible modificar el dominio!</font>'; |
|||
|
|||
$PALANG['pAdminCreate_admin_welcome'] = 'Añadir un nuevo administrador de dominio'; |
|||
$PALANG['pAdminCreate_admin_username'] = 'Administrador'; |
|||
$PALANG['pAdminCreate_admin_username_text'] = 'E-mail'; |
|||
$PALANG['pAdminCreate_admin_username_text_error1'] = 'E-mail<br /><font color="red">Administrador no es un e-mail válido!</font>'; |
|||
$PALANG['pAdminCreate_admin_username_text_error2'] = 'E-mail<br /><font color="red">El administrador ya existe o no es válido!</font>'; |
|||
|
|||
$PALANG['pAdminCreate_admin_password'] = 'Contraseña'; |
|||
$PALANG['pAdminCreate_admin_password2'] = 'Contraseña (repetir)'; |
|||
$PALANG['pAdminCreate_admin_password_text_error'] = '<font color="red">¡Las contraseñas introducidas no coinciden<br />o están en blanco!</font>'; |
|||
$PALANG['pAdminCreate_admin_button'] = 'Añadir administrador'; |
|||
$PALANG['pAdminCreate_admin_result_error'] = '<font color="red">¡Imposible añadir el administrador!</font>'; |
|||
$PALANG['pAdminCreate_admin_result_succes'] = '¡El administrador ha sido añadido!'; |
|||
$PALANG['pAdminCreate_admin_address'] = 'Dominio'; |
|||
|
|||
$PALANG['pAdminEdit_admin_welcome'] = 'Editar un administrador de dominio'; |
|||
$PALANG['pAdminEdit_admin_username'] = 'Administrador'; |
|||
$PALANG['pAdminEdit_admin_password'] = 'Contraseña'; |
|||
$PALANG['pAdminEdit_admin_password2'] = 'Contraseña (repetir)'; |
|||
$PALANG['pAdminEdit_admin_password_text_error'] = '<font color="red">¡Las contraseñas introducidas no coinciden<br />o están en blanco!</font>'; |
|||
$PALANG['pAdminEdit_admin_active'] = 'Activo'; |
|||
$PALANG['pAdminEdit_admin_button'] = 'Editar administrador'; |
|||
$PALANG['pAdminEdit_admin_result_error'] = '<font color="red">¡Imposible modificar el administrador!</font>'; |
|||
$PALANG['pAdminEdit_admin_result_succes'] = '¡El administrador ha sido modificado!'; |
|||
|
|||
$PALANG['pUsersLogin_welcome'] = 'Login de usuarios para cambiar la contraseña y alias.'; |
|||
$PALANG['pUsersLogin_username'] = 'Login (e-mail)'; |
|||
$PALANG['pUsersLogin_password'] = 'Contraseña'; |
|||
$PALANG['pUsersLogin_button'] = 'Login'; |
|||
$PALANG['pUsersLogin_username_incorrect'] = 'Su login no es correcto. ¡Asegúrese de haber introducido su dirección de e-mail como login!'; |
|||
$PALANG['pUsersLogin_password_incorrect'] = '¡Su contraseña no es correcta!'; |
|||
|
|||
$PALANG['pUsersMenu_vacation'] = 'Respuesta automática'; |
|||
$PALANG['pUsersMenu_edit_alias'] = 'Cambiar la redirección'; |
|||
$PALANG['pUsersMenu_password'] = 'Cambiar la contraseña'; |
|||
|
|||
$PALANG['pUsersMain_welcome'] = '¡Cambie la configuración de su buzón aquí!'; |
|||
$PALANG['pUsersMain_vacation'] = 'Configure un mensaje de "fuera del trabajo" o una respuesta automática para su correo.'; |
|||
$PALANG['pUsersMain_edit_alias'] = 'Cambie su redirección de correo.'; |
|||
$PALANG['pUsersMain_password'] = 'Cambie su contraseña.'; |
|||
|
|||
$PALANG['pUsersVacation_welcome'] = 'Respuesta automática.'; |
|||
$PALANG['pUsersVacation_welcome_text'] = '¡Ya dispone de una respuesta automática configurada!'; |
|||
$PALANG['pUsersVacation_subject'] = 'Asunto'; |
|||
$PALANG['pUsersVacation_subject_text'] = 'Fuera del trabajo'; |
|||
$PALANG['pUsersVacation_body'] = 'Cuerpo'; |
|||
$PALANG['pUsersVacation_body_text'] = <<<EOM |
|||
Estaré fuera desde <date> hasta <date>. |
|||
Para asuntos urgentes, puede contactar conmigo en <contact person>. |
|||
EOM; |
|||
$PALANG['pUsersVacation_button_away'] = 'Ausente'; |
|||
$PALANG['pUsersVacation_button_back'] = 'De vuelta'; |
|||
$PALANG['pUsersVacation_result_error'] = '<font color="red">¡Imposible actualizar la configuración de su respuesta automática!</font>'; |
|||
$PALANG['pUsersVacation_result_succes'] = '¡Su respuesta automática ha sido borrada!'; |
|||
?> |
|||
@ -0,0 +1,69 @@ |
|||
<?php |
|||
//
|
|||
// File: login.php
|
|||
//
|
|||
// Template File: login.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tUsername
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
// fPassword
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/login.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fUsername = $_POST['fUsername']; |
|||
$fPassword = $_POST['fPassword']; |
|||
|
|||
$result = db_query ("SELECT password FROM admin WHERE username='$fUsername'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$salt = preg_split ('/\$/', $row['password']); |
|||
$password = md5crypt ($fPassword, $salt[2]); |
|||
|
|||
$result = db_query ("SELECT * FROM admin WHERE username='$fUsername' AND password='$password'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pLogin_password_incorrect']; |
|||
$tUsername = $fUsername; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pLogin_username_incorrect']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
session_start(); |
|||
session_register("sessid"); |
|||
$_SESSION['sessid']['username'] = $fUsername; |
|||
|
|||
header("Location: main.php"); |
|||
exit; |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/login.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,25 @@ |
|||
<?php |
|||
//
|
|||
// File: logout.php
|
|||
//
|
|||
// Template File: -none-
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
|
|||
session_unset (); |
|||
session_destroy (); |
|||
|
|||
header ("Location: login.php"); |
|||
exit; |
|||
?>
|
|||
@ -0,0 +1,36 @@ |
|||
<?php |
|||
//
|
|||
// File: main.php
|
|||
//
|
|||
// Template File: main.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
|
|||
if ($_SERVER["REQUEST_METHOD"] == "GET") |
|||
{ |
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/main.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER["REQUEST_METHOD"] == "POST") |
|||
{ |
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/main.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,113 @@ |
|||
<?php |
|||
//
|
|||
// File: overview.php
|
|||
//
|
|||
// Template File: overview.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tAlias
|
|||
// tMailbox
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDomain
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session(); |
|||
$list_domains = list_domains_for_admin ($SESSID_USERNAME); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
|
|||
if (isset ($_GET['domain'])) $fDomain = $_GET['domain']; |
|||
|
|||
if (check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$limit = get_domain_properties ($fDomain); |
|||
|
|||
if ($CONF['alias_control'] == "YES") |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias WHERE alias.domain='$fDomain' ORDER BY alias.address"; |
|||
} |
|||
else |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias LEFT JOIN mailbox ON alias.address=mailbox.username WHERE alias.domain='$fDomain' AND mailbox.maildir IS NULL ORDER BY alias.address"; |
|||
} |
|||
|
|||
$result = db_query ("$query"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tAlias[] = $row; |
|||
} |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE domain='$fDomain' ORDER BY username"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tMailbox[] = $row; |
|||
} |
|||
} |
|||
$template = "overview.tpl"; |
|||
} |
|||
else |
|||
{ |
|||
$template = "overview-get.tpl"; |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/$template"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
if (check_owner ($SESSID_USERNAME, $_POST['fDomain'])) |
|||
{ |
|||
$fDomain = $_POST['fDomain']; |
|||
|
|||
$limit = get_domain_properties ($fDomain); |
|||
|
|||
if ($CONF['alias_control'] == "YES") |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias WHERE alias.domain='$fDomain' ORDER BY alias.address"; |
|||
} |
|||
else |
|||
{ |
|||
$query = "SELECT alias.address,alias.goto,alias.modified FROM alias LEFT JOIN mailbox ON alias.address=mailbox.username WHERE alias.domain='$fDomain' AND mailbox.maildir IS NULL ORDER BY alias.address"; |
|||
} |
|||
|
|||
$result = db_query ("$query"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tAlias[] = $row; |
|||
} |
|||
} |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE domain='$fDomain' ORDER BY username"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tMailbox[] = $row; |
|||
} |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/overview.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,87 @@ |
|||
<?php |
|||
//
|
|||
// File: password.php
|
|||
//
|
|||
// Template File: password.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fPassword_current
|
|||
// fPassword
|
|||
// fPassword2
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/password.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pPassword_password_text = $PALANG['pPassword_password_text']; |
|||
|
|||
$fPassword_current = $_POST['fPassword_current']; |
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
|
|||
$username = $SESSID_USERNAME; |
|||
|
|||
$result = db_query ("SELECT * FROM admin WHERE username='$username'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$salt = preg_split ('/\$/', $row['password']); |
|||
$checked_password = pacrypt ($fPassword_current, $salt[2]); |
|||
|
|||
$result = db_query ("SELECT * FROM admin WHERE username='$username' AND password='$checked_password'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$pPassword_password_current_text = $PALANG['pPassword_password_current_text_error']; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$error = 1; |
|||
$pPassword_email_text = $PALANG['pPassword_email_text_error']; |
|||
} |
|||
|
|||
if (empty ($fPassword) or ($fPassword != $fPassword2)) |
|||
{ |
|||
$error = 1; |
|||
$pPassword_password_text = $PALANG['pPassword_password_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$password = pacrypt ($fPassword); |
|||
$result = db_query ("UPDATE admin SET password='$password',modified=NOW() WHERE username='$username'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$tMessage = $PALANG['pPassword_result_succes']; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pPassword_result_error']; |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/password.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
|
After Width: 231 | Height: 50 | Size: 5.9 KiB |
@ -0,0 +1,67 @@ |
|||
<?php |
|||
//
|
|||
// File: sendmail.php
|
|||
//
|
|||
// Template File: sendmail.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tFrom
|
|||
// tSubject
|
|||
// tBody
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fTo
|
|||
// fSubject
|
|||
// fBody
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session (); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/sendmail.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fTo = $_POST['fTo']; |
|||
$fSubject = $_POST['fSubject']; |
|||
$fBody = $_POST['fBody']; |
|||
|
|||
if (empty ($fTo) or !check_email ($fTo)) |
|||
{ |
|||
$error = 1; |
|||
$tTo = $fTo; |
|||
$tSubject = $fSubject; |
|||
$tBody = $fBody; |
|||
$tMessage = $PALANG['pSendmail_to_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
if (!mail ($fTo, $fSubject, $fBody, "From: $SESSID_USERNAME")) |
|||
{ |
|||
$tMessage = $PALANG['pSendmail_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pSendmail_result_succes']; |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/sendmail.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,184 @@ |
|||
body { |
|||
background: white; |
|||
color: black; |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 13px; |
|||
margin: 8px; |
|||
padding: 0px; |
|||
text-align: center; |
|||
} |
|||
|
|||
h1 { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 18px; |
|||
font-weight: bold; |
|||
margin-bottom: 0px; |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
a { |
|||
color: blue; |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
text-decoration: none; |
|||
} |
|||
|
|||
a:visited { |
|||
color: blue; |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
text-decoration: none; |
|||
} |
|||
|
|||
hr { |
|||
line-heigt: 1px; |
|||
margin-top: 10px; |
|||
margin-bottom: 10px; |
|||
width: auto; |
|||
text-align: center; |
|||
} |
|||
|
|||
hr.footer { |
|||
margin-top: 10px; |
|||
margin-bottom: 0px; |
|||
width: 640px; |
|||
} |
|||
|
|||
p { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 13px; |
|||
margin-top: 13px; |
|||
text-align: center; |
|||
} |
|||
|
|||
p.footer { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
margin-bottom: 0px; |
|||
margin-top: 5px; |
|||
text-align: center; |
|||
} |
|||
|
|||
p.error { |
|||
color: red; |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 13px; |
|||
text-align: center; |
|||
} |
|||
|
|||
table { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
width: 640px; |
|||
text-align: left; |
|||
margin-top: 0px; |
|||
margin-bottom: 0px; |
|||
padding-top: 0px; |
|||
} |
|||
|
|||
table.auto { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
width: auto; |
|||
text-align: left; |
|||
margin-top: 0px; |
|||
margin-bottom: 0px; |
|||
padding-top: 0px; |
|||
} |
|||
|
|||
|
|||
table.form { |
|||
font-size: 11px; |
|||
padding-left: 0px; |
|||
padding-right: 0px; |
|||
text-align: left; |
|||
width: auto; |
|||
} |
|||
|
|||
td { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
padding-left: 5px; |
|||
padding-right: 5px; |
|||
} |
|||
|
|||
tr.header { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-weight: bold; |
|||
padding-left: 11px; |
|||
padding-right: 11px; |
|||
} |
|||
|
|||
td.center { |
|||
text-align: center; |
|||
} |
|||
|
|||
td.header { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-weight: bold; |
|||
padding-left: 11px; |
|||
padding-right: 11px; |
|||
text-align: center; |
|||
} |
|||
|
|||
td.highlight { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
background: rgb(169,194,162); |
|||
padding-left: 5px; |
|||
padding-right: 5px; |
|||
} |
|||
|
|||
td.menu { |
|||
text-align: center; |
|||
background: #dfdfdf; |
|||
border-top: 1px solid #999; |
|||
border-right: 1px solid #999; |
|||
border-left: 1px solid #999; |
|||
border-bottom: 1px solid #999; |
|||
border-radius: 2px; |
|||
-moz-border-radius: 2px; |
|||
padding-bottom: 5px; |
|||
padding-top: 5px; |
|||
|
|||
} |
|||
|
|||
td.right { |
|||
text-align: center; |
|||
padding-left: 0px; |
|||
padding-right: 0px; |
|||
margin-left: 0px; |
|||
margin-right: 0px; |
|||
} |
|||
|
|||
input { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
float: none; |
|||
clear: none; |
|||
} |
|||
|
|||
input.button { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
background: rgb(232,236,176) |
|||
} |
|||
|
|||
textarea { |
|||
font-family: Verdana; |
|||
font-family: Verdana, Arial, Helvetica, sans-serif; |
|||
font-size: 11px; |
|||
} |
|||
@ -0,0 +1,71 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pAdminCreate_admin_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="alias" method="post"> |
|||
<?php print $PALANG['pAdminCreate_admin_username'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fUsername" value="<?php print $tUsername; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pAdminCreate_admin_username_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_admin_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pAdminCreate_admin_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_admin_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td colspan=3 align=center> |
|||
<select name="fDomains[]" size="10" multiple="multiple"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if (in_array ($list_domains[$i], $tDomains)) |
|||
{ |
|||
print "<option value=\"" . $list_domains[$i] . "\" selected=\"selected\">" . $list_domains[$i] . "</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<option value=\"" . $list_domains[$i] . "\">" . $list_domains[$i] . "</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pAdminCreate_admin_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<p /> |
|||
@ -0,0 +1,91 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pAdminCreate_domain_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="create_domain" method="post"> |
|||
<?php print $PALANG['pAdminCreate_domain_domain'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fDomain" value="<?php print $tDomain; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pAdminCreate_domain_domain_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_description'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fDescription" value="<?php print $tDescription; ?>" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_aliases'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fAliases" value="<?php print $tAliases; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_aliases_text'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_mailboxes'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fMailboxes" value="<?php print $tMailboxes; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_mailboxes_text'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<?php |
|||
if ($CONF['quota'] == 'YES') |
|||
{ |
|||
print " <tr>\n"; |
|||
print " <td>\n"; |
|||
print " " . $PALANG['pAdminCreate_domain_maxquota'] . ":\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " <input type=\"text\" name=\"fMaxquota\" value=\"$tMaxquota\" />\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " " . $PALANG['pAdminCreate_domain_maxquota_text'] . "\n"; |
|||
print " </td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
?> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_defaultaliases'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php $checked = (!empty ($tDefaultaliases)) ? 'checked' : ''; ?> |
|||
<input type="checkbox" name="fDefaultaliases" <?php print $checked; ?> /> |
|||
</td> |
|||
<td> |
|||
<?php print $pAdminCreate_domain_defaultaliases_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pAdminCreate_domain_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<p /> |
|||
@ -0,0 +1,115 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pCreate_mailbox_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pCreate_mailbox_username'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fUsername" value="<?php print $tUsername; ?>" /> |
|||
</td> |
|||
<td> |
|||
<select name="fDomain"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if ($tDomain == $list_domains[$i]) |
|||
{ |
|||
print " <option value=\"$list_domains[$i]\" selected>$list_domains[$i]</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print " <option value=\"$list_domains[$i]\">$list_domains[$i]</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<?php print $pCreate_mailbox_username_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pCreate_mailbox_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_name'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fName" value="<?php print $tName; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pCreate_mailbox_name_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<?php |
|||
if ($CONF['quota'] == 'YES') |
|||
{ |
|||
print " <tr>\n"; |
|||
print " <td>\n"; |
|||
print " " . $PALANG['pCreate_mailbox_quota'] . ":\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " <input type=\"text\" name=\"fQuota\" value=\"$tQuota\" />\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " $pCreate_mailbox_quota_text\n"; |
|||
print " </td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
?> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_active'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="checkbox" name="fActive" checked /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_mail'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="checkbox" name="fMail" checked /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pCreate_mailbox_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,84 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pAdminEdit_admin_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="alias" method="post"> |
|||
<?php print $PALANG['pAdminEdit_admin_username'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $username . "\n"; ?> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_admin_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pAdminEdit_admin_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_admin_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_admin_active'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php $checked = (!empty ($tActive)) ? 'checked' : ''; ?> |
|||
<input type="checkbox" name="fActive" <?php print $checked; ?> /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td colspan=3 align=center> |
|||
<select name="fDomains[]" size="10" multiple="multiple"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if (in_array ($list_domains[$i], $tDomains)) |
|||
{ |
|||
print "<option value=\"" . $list_domains[$i] . "\" selected=\"selected\">" . $list_domains[$i] . "</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<option value=\"" . $list_domains[$i] . "\">" . $list_domains[$i] . "</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pAdminEdit_admin_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<p /> |
|||
@ -0,0 +1,86 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pAdminEdit_domain_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="alias" method="post"> |
|||
<?php print $PALANG['pAdminEdit_domain_domain'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $domain . "\n"; ?> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_domain_description'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fDescription" value="<?php print $tDescription; ?>" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_domain_aliases'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fAliases" value="<?php print $tAliases; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_aliases_text'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_domain_mailboxes'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fMailboxes" value="<?php print $tMailboxes; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_mailboxes_text'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_domain_maxquota'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fMaxquota" value="<?php print $tMaxquota; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pAdminCreate_domain_maxquota_text'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pAdminEdit_domain_active'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php $checked = (!empty ($tActive)) ? 'checked' : ''; ?> |
|||
<input type="checkbox" name="fActive" <?php print $checked; ?> /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pAdminEdit_domain_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<p /> |
|||
@ -0,0 +1,32 @@ |
|||
<center> |
|||
<?php |
|||
if (sizeof ($list_admins) > 0) |
|||
{ |
|||
print "<center>\n"; |
|||
print "<table border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pAdminList_admin_username'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_admin_count'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_admin_modified'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_admin_active'] . "</td>\n"; |
|||
print " <td colspan=\"2\"> </td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($list_admins); $i++) |
|||
{ |
|||
print " <tr onMouseOver=\"this.bgColor = '#dfdfdf'\" onMouseOut =\"this.bgColor = '#ffffff'\" bgcolor=\"#ffffff\">"; |
|||
print " <td><a href=\"list-domain.php?username=" . $list_admins[$i] . "\">" . $list_admins[$i] . "</a></td>"; |
|||
print " <td>" . $admin_properties[$i]['domain_count'] . "</td>"; |
|||
print " <td>" . $admin_properties[$i]['modified'] . "</td>"; |
|||
$active = ($admin_properties[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; |
|||
print " <td>" . $active . "</td>"; |
|||
print " <td><a href=\"edit-admin.php?username=" . $list_admins[$i] . "\">" . $PALANG['edit'] . "</a></td>"; |
|||
print " <td><a href=\"delete.php?table=admin&where=username&delete=" . $list_admins[$i] . "\" onclick=\"return confirm ('" . $PALANG['confirm'] . "')\">" . $PALANG['del'] . "</a></td>"; |
|||
print " </tr>\n"; |
|||
} |
|||
|
|||
print "</table>\n"; |
|||
print "</center>\n"; |
|||
print "<p />\n"; |
|||
} |
|||
?> |
|||
@ -0,0 +1,57 @@ |
|||
<center> |
|||
<form name="overview" method="post"> |
|||
<select name="fUsername"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_admins); $i++) |
|||
{ |
|||
if ($fUsername == $list_admins[$i]) |
|||
{ |
|||
print "<option value=\"" . $list_admins[$i] . "\" selected>" . $list_admins[$i] . "</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<option value=\"" . $list_admins[$i] . "\">" . $list_admins[$i] . "</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pOverview_button']; ?>" /> |
|||
</form> |
|||
<p /> |
|||
<?php |
|||
if (sizeof ($list_domains) > 0) |
|||
{ |
|||
print "<center>\n"; |
|||
print "<table class=\"auto\" border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pAdminList_domain_domain'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_domain_description'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_domain_aliases'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_domain_mailboxes'] . "</td>\n"; |
|||
if ($CONF['quota'] == 'YES') print " <td>" . $PALANG['pAdminList_domain_maxquota'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_domain_modified'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_domain_active'] . "</td>\n"; |
|||
print " <td colspan=\"2\"> </td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
print "<tr onMouseOver=\"this.bgColor = '#dfdfdf'\" onMouseOut =\"this.bgColor = '#ffffff'\" bgcolor=\"#ffffff\">"; |
|||
print "<td><a href=\"list-virtual.php?domain=" . $list_domains[$i] . "\">" . $list_domains[$i] . "</a></td>"; |
|||
print "<td>" . $domain_properties[$i]['description'] . "</td>"; |
|||
print "<td>" . $domain_properties[$i]['alias_count'] . " / " . $domain_properties[$i]['aliases'] . "</td>"; |
|||
print "<td>" . $domain_properties[$i]['mailbox_count'] . " / " . $domain_properties[$i]['mailboxes'] . "</td>"; |
|||
if ($CONF['quota'] == 'YES') print "<td>" . $domain_properties[$i]['maxquota'] . "</td>"; |
|||
print "<td>" . $domain_properties[$i]['modified'] . "</td>"; |
|||
$active = ($domain_properties[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; |
|||
print "<td>" . $active . "</td>"; |
|||
print "<td><a href=\"edit-domain.php?domain=" . $list_domains[$i] . "\">" . $PALANG['edit'] . "</a></td>"; |
|||
print "<td><a href=\"delete.php?table=domain&where=domain&delete=" . $list_domains[$i] . "\" onclick=\"return confirm ('" . $PALANG['confirm_domain'] . "')\">" . $PALANG['del'] . "</a></td>"; |
|||
print "</tr>\n"; |
|||
} |
|||
|
|||
print "</table>\n"; |
|||
print "</center>\n"; |
|||
print "<p />\n"; |
|||
} |
|||
?> |
|||
@ -0,0 +1,85 @@ |
|||
<center> |
|||
<form name="overview" method="post"> |
|||
<select name="fDomain"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if ($fDomain == $list_domains[$i]) |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\" selected>$list_domains[$i]</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\">$list_domains[$i]</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pAdminList_virtual_button']; ?>" /> |
|||
</form> |
|||
<p /> |
|||
<?php |
|||
|
|||
print "<b>". $PALANG['pAdminList_virtual_welcome'] . $fDomain . "</b><br />\n"; |
|||
print $PALANG['pAdminList_virtual_alias_alias_count'] . ": " . $limit['alias_count'] . " / " . $limit['aliases'] . " "; |
|||
print $PALANG['pAdminList_virtual_alias_mailbox_count'] . ": " . $limit['mailbox_count'] . " / " . $limit['mailboxes'] . "<br />\n"; |
|||
print "<p />\n"; |
|||
|
|||
if (sizeof ($tAlias) > 0) |
|||
{ |
|||
print "<center>\n"; |
|||
print "<table border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pAdminList_virtual_alias_address'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_virtual_alias_goto'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_virtual_alias_modified'] . "</td>\n"; |
|||
print " <td colspan=\"2\"> </td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($tAlias); $i++) |
|||
{ |
|||
print " <tr onMouseOver=\"this.bgColor='#dfdfdf'\" onMouseOut =\"this.bgColor ='#ffffff'\" bgcolor=\"#ffffff\">\n"; |
|||
print " <td>" . $tAlias[$i]['address'] . "</td>\n"; |
|||
print " <td>" . ereg_replace (",", "<br>", $tAlias[$i]['goto']) . "</td>\n"; |
|||
print " <td>" . $tAlias[$i]['modified'] . "</td>\n"; |
|||
print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; |
|||
print " <td><a href=\"delete.php?table=alias" . "&delete=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . "')\">" . $PALANG['del'] . "</a></td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
|
|||
print "</table>\n"; |
|||
print "</center>\n"; |
|||
print "<p />\n"; |
|||
} |
|||
|
|||
if (sizeof ($tMailbox) > 0) |
|||
{ |
|||
print "<center>\n"; |
|||
print "<table border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pAdminList_virtual_mailbox_username'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_virtual_mailbox_name'] . "</td>\n"; |
|||
if ($CONF['quota'] == 'YES') print " <td>" . $PALANG['pAdminList_virtual_mailbox_quota'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_virtual_mailbox_modified'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pAdminList_virtual_mailbox_active'] . "</td>\n"; |
|||
print " <td colspan=\"2\"> </td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($tMailbox); $i++) |
|||
{ |
|||
print " <tr onMouseOver=\"this.bgColor='#dfdfdf'\" onMouseOut =\"this.bgColor='#ffffff'\" bgcolor=\"#ffffff\">\n"; |
|||
print " <td>" . $tMailbox[$i]['username'] . "</td>\n"; |
|||
print " <td>" . $tMailbox[$i]['name'] . "</td>\n"; |
|||
if ($CONF['quota'] == 'YES') print " <td>" . substr ($tMailbox[$i]['quota'], 0, -6) . "</td>\n"; |
|||
print " <td>" . $tMailbox[$i]['modified'] . "</td>\n"; |
|||
$active = ($tMailbox[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; |
|||
print " <td>" . $active . "</td>\n"; |
|||
print " <td><a href=\"edit-mailbox.php?username=" . urlencode ($tMailbox[$i]['username']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; |
|||
print " <td><a href=\"delete.php?table=mailbox" . "&delete=" . urlencode ($tMailbox[$i]['username']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . "')\">" . $PALANG['del'] . "</a></td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
print "</table>\n"; |
|||
print "</center>\n"; |
|||
print "<p />\n"; |
|||
} |
|||
?> |
|||
@ -0,0 +1,62 @@ |
|||
<table class="auto"> |
|||
<tr> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="list-admin.php"><?php print $PALANG['pAdminMenu_list_admin']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="list-domain.php"><?php print $PALANG['pAdminMenu_list_domain']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="list-virtual.php"><?php print $PALANG['pAdminMenu_list_virtual']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="viewlog.php"><?php print $PALANG['pAdminMenu_viewlog']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="backup.php"><?php print $PALANG['pAdminMenu_backup']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="create-domain.php"><?php print $PALANG['pAdminMenu_create_domain']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="create-admin.php"><?php print $PALANG['pAdminMenu_create_admin']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="create-alias.php"><?php print $PALANG['pAdminMenu_create_alias']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target=_top href="create-mailbox.php"><?php print $PALANG['pAdminMenu_create_mailbox']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<hr /> |
|||
@ -0,0 +1,57 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pCreate_alias_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="alias" method="post"> |
|||
<?php print $PALANG['pCreate_alias_address'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fAddress" value="<?php print $tAddress; ?>" /> |
|||
</td> |
|||
<td> |
|||
<select name="fDomain"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if ($tDomain == $list_domains[$i]) |
|||
{ |
|||
print " <option value=\"$list_domains[$i]\" selected>$list_domains[$i]</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print " <option value=\"$list_domains[$i]\">$list_domains[$i]</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<?php print $pCreate_alias_address_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_alias_goto'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fGoto" value="<?php print $tGoto; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pCreate_alias_goto_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pCreate_alias_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<p /> |
|||
<?php print $PALANG['pCreate_alias_catchall_text'] . "\n"; ?> |
|||
@ -0,0 +1,116 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pCreate_mailbox_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pCreate_mailbox_username'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fUsername" value="<?php print $tUsername; ?>" /> |
|||
</td> |
|||
<td> |
|||
<select name="fDomain"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if ($tDomain == $list_domains[$i]) |
|||
{ |
|||
print " <option value=\"$list_domains[$i]\" selected>$list_domains[$i]</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print " <option value=\"$list_domains[$i]\">$list_domains[$i]</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<?php print $pCreate_mailbox_username_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pCreate_mailbox_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_name'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fName" value="<?php print $tName; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pCreate_mailbox_name_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<?php |
|||
if ($CONF['quota'] == 'YES') |
|||
{ |
|||
print " <tr>\n"; |
|||
print " <td>\n"; |
|||
print " " . $PALANG['pCreate_mailbox_quota'] . ":\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " <input type=\"text\" name=\"fQuota\" value=\"$tQuota\" />\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " $pCreate_mailbox_quota_text\n"; |
|||
print " </td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
?> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_active'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="checkbox" name="fActive" checked /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_mail'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="checkbox" name="fMail" checked /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pCreate_mailbox_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,2 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
@ -0,0 +1,49 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pEdit_alias_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pEdit_alias_address'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $fAddress; ?> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pEdit_alias_goto'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<textarea rows="24" cols="80" name="fGoto"> |
|||
<?php |
|||
$array = preg_split ('/,/', $tGoto); |
|||
for ($i = 0 ; $i < sizeof ($array) ; $i++) |
|||
{ |
|||
if (empty ($array[$i])) continue; |
|||
print "$array[$i]\n"; |
|||
} |
|||
?> |
|||
</textarea> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pEdit_alias_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,90 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pEdit_mailbox_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pEdit_mailbox_username'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $fUsername . "\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $pEdit_mailbox_username_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pEdit_mailbox_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pEdit_mailbox_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pEdit_mailbox_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pEdit_mailbox_name'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fName" value="<?php print $tName; ?>" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<?php |
|||
if ($CONF['quota'] == 'YES') |
|||
{ |
|||
print " <tr>\n"; |
|||
print " <td>\n"; |
|||
print " " . $PALANG['pEdit_mailbox_quota'] . ":\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " <input type=\"text\" name=\"fQuota\" value=\"$tQuota\" />\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " $pEdit_mailbox_quota_text\n"; |
|||
print " </td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
?> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pCreate_mailbox_active'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php $checked = (!empty ($tActive)) ? 'checked' : ''; ?> |
|||
<input type="checkbox" name="fActive" <?php print $checked; ?> /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pEdit_mailbox_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,12 @@ |
|||
<p class="footer"> |
|||
<a target="_blank" href="http://high5.net/"><font color="black">Postfix Admin <?php print $version; ?></font></a><br /> |
|||
<?php |
|||
if (($CONF['show_footer_text'] == "YES") and ($CONF['footer_link'])) |
|||
{ |
|||
print "<p />\n"; |
|||
print "<a href=\"" . $CONF['footer_link'] . "\">" . $CONF['footer_text'] . "</a>\n"; |
|||
} |
|||
?> |
|||
</center> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,19 @@ |
|||
<?php |
|||
@header ("Expires: Sun, 16 Mar 2003 05:00:00 GMT"); |
|||
@header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); |
|||
@header ("Cache-Control: no-store, no-cache, must-revalidate"); |
|||
@header ("Cache-Control: post-check=0, pre-check=0", false); |
|||
@header ("Pragma: no-cache"); |
|||
?> |
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|||
<html xmlns="http://www.w3.org/1999/xhtml"> |
|||
<head> |
|||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
|||
<?php |
|||
if (file_exists (realpath ("./stylesheet.css"))) print "<link rel=\"stylesheet\" href=\"stylesheet.css\">\n"; |
|||
if (file_exists (realpath ("../stylesheet.css"))) print "<link rel=\"stylesheet\" href=\"../stylesheet.css\">\n"; |
|||
?> |
|||
<title>Postfix Admin</title> |
|||
</head> |
|||
<body> |
|||
<center> |
|||
@ -0,0 +1,69 @@ |
|||
<?php |
|||
if ($CONF['logo'] == "YES") |
|||
{ |
|||
print "<img src=\"postfixadmin.png\" />\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<h1>" . $CONF['header_text'] . "</h1>\n"; |
|||
} |
|||
?> |
|||
<p /> |
|||
<center> |
|||
<font color="red"><?php print $tMessage; ?></font> |
|||
<table width="10%" border="0" cellspacing="0" cellpadding="0" height="100"> |
|||
<tr bgcolor="#999999"> |
|||
<td colspan="3" height="1"> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td bgcolor="#999999"> |
|||
</td> |
|||
<td bgcolor="#eeeeee" valign="top"> |
|||
<table border="0" cellspacing="0" cellpadding="6"> |
|||
<tr> |
|||
<td colspan="2" align="center"> |
|||
<br /> |
|||
<b><?php print $PALANG['pLogin_welcome']; ?></b><br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<td align="right"> |
|||
<form name="login" method="post"> |
|||
<?php print $PALANG['pLogin_username'] . ":\n"; ?> |
|||
</td> |
|||
<td align="left"> |
|||
<input type="text" name="fUsername" value="<?php print $tUsername; ?>" /><br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="right"> |
|||
<?php print $PALANG['pLogin_password'] . ":\n"; ?> |
|||
</td> |
|||
<td align="left"> |
|||
<input type="password" name="fPassword" /><br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="2"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pLogin_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="left" colspan="2"> |
|||
<p /> |
|||
<a href="users/"><?php print $PALANG['pLogin_login_users']; ?></a> |
|||
<p /> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</td> |
|||
<td bgcolor="#999999"> |
|||
</td> |
|||
</tr> |
|||
<tr bgcolor="#999999"> |
|||
<td colspan="3" height="1"> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,66 @@ |
|||
<center> |
|||
<table class="auto" border="0"> |
|||
<tr> |
|||
<td colspan="2" nowrap> |
|||
<?php print $PALANG['pMain_welcome'] . "\n"; ?> |
|||
<p /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="overview.php"><?php print $PALANG['pMenu_overview']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pMain_overview'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="create-alias.php"><?php print $PALANG['pMenu_create_alias']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pMain_create_alias'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="create-mailbox.php"><?php print $PALANG['pMenu_create_mailbox']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pMain_create_mailbox'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="sendmail.php"><?php print $PALANG['pMenu_sendmail']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pMain_sendmail'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="password.php"><?php print $PALANG['pMenu_password']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pMain_password'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="viewlog.php"><?php print $PALANG['pMenu_viewlog']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pMain_viewlog'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="logout.php"><?php print $PALANG['pMenu_logout']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pMain_logout'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<hr /> |
|||
@ -0,0 +1,50 @@ |
|||
<table class="auto"> |
|||
<tr> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="overview.php"><?php print $PALANG['pMenu_overview']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="create-alias.php"><?php print $PALANG['pMenu_create_alias']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="create-mailbox.php"><?php print $PALANG['pMenu_create_mailbox']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="sendmail.php"><?php print $PALANG['pMenu_sendmail']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="password.php"><?php print $PALANG['pMenu_password']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="viewlog.php"><?php print $PALANG['pMenu_viewlog']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="logout.php"><?php print $PALANG['pMenu_logout']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<hr /> |
|||
@ -0,0 +1,44 @@ |
|||
<center> |
|||
<form name="overview" method="post"> |
|||
<select name="fDomain"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if ($fDomain == $list_domains[$i]) |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\" selected>$list_domains[$i]</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\">$list_domains[$i]</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pOverview_button']; ?>" /> |
|||
</form> |
|||
<p /> |
|||
<?php |
|||
print "<center>\n"; |
|||
print "<table border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pOverview_get_domain'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pOverview_get_aliases'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pOverview_get_mailboxes'] . "</td>\n"; |
|||
if ($CONF['quota'] == 'YES') print " <td>" . $PALANG['pOverview_get_quota'] . "</td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
$limit = get_domain_properties ($list_domains[$i]); |
|||
|
|||
print " <tr onMouseOver=\"this.bgColor='#dfdfdf'\" onMouseOut =\"this.bgColor ='#ffffff'\" bgcolor=\"#ffffff\">\n"; |
|||
print " <td><a href=\"overview.php?domain=" . $list_domains[$i] . "\">" . $list_domains[$i] . "</a></td>\n"; |
|||
print " <td>" . $limit['alias_count'] . " / " . $limit['aliases'] . "</td>\n"; |
|||
print " <td>" . $limit['mailbox_count'] . " / " . $limit['mailboxes'] . "</td>\n"; |
|||
if ($CONF['quota'] == 'YES') print " <td>" . $limit['maxquota'] . "</td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
print "</table>\n"; |
|||
print "<p />\n"; |
|||
?> |
|||
@ -0,0 +1,85 @@ |
|||
<center> |
|||
<form name="overview" method="post"> |
|||
<select name="fDomain"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if ($fDomain == $list_domains[$i]) |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\" selected>$list_domains[$i]</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\">$list_domains[$i]</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pOverview_button']; ?>" /> |
|||
</form> |
|||
<p /> |
|||
<?php |
|||
|
|||
print "<b>". $PALANG['pOverview_welcome'] . $fDomain . "</b><br />\n"; |
|||
print $PALANG['pOverview_alias_alias_count'] . ": " . $limit['alias_count'] . " / " . $limit['aliases'] . " "; |
|||
print $PALANG['pOverview_alias_mailbox_count'] . ": " . $limit['mailbox_count'] . " / " . $limit['mailboxes'] . "<br />\n"; |
|||
print "<p />\n"; |
|||
|
|||
if (sizeof ($tAlias) > 0) |
|||
{ |
|||
print "<center>\n"; |
|||
print "<table border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pOverview_alias_address'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pOverview_alias_goto'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pOverview_alias_modified'] . "</td>\n"; |
|||
print " <td colspan=\"2\"> </td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($tAlias); $i++) |
|||
{ |
|||
print " <tr onMouseOver=\"this.bgColor='#dfdfdf'\" onMouseOut =\"this.bgColor ='#ffffff'\" bgcolor=\"#ffffff\">\n"; |
|||
print " <td>" . $tAlias[$i]['address'] . "</td>\n"; |
|||
print " <td>" . ereg_replace (",", "<br>", $tAlias[$i]['goto']) . "</td>\n"; |
|||
print " <td>" . $tAlias[$i]['modified'] . "</td>\n"; |
|||
print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; |
|||
print " <td><a href=\"delete.php?delete=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . "')\">" . $PALANG['del'] . "</a></td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
|
|||
print "</table>\n"; |
|||
print "</center>\n"; |
|||
print "<p />\n"; |
|||
} |
|||
|
|||
if (sizeof ($tMailbox) > 0) |
|||
{ |
|||
print "<center>\n"; |
|||
print "<table border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pOverview_mailbox_username'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pOverview_mailbox_name'] . "</td>\n"; |
|||
if ($CONF['quota'] == 'YES') print " <td>" . $PALANG['pOverview_mailbox_quota'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pOverview_mailbox_modified'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pOverview_mailbox_active'] . "</td>\n"; |
|||
print " <td colspan=\"2\"> </td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($tMailbox); $i++) |
|||
{ |
|||
print " <tr onMouseOver=\"this.bgColor='#dfdfdf'\" onMouseOut =\"this.bgColor='#ffffff'\" bgcolor=\"#ffffff\">\n"; |
|||
print " <td>" . $tMailbox[$i]['username'] . "</td>\n"; |
|||
print " <td>" . $tMailbox[$i]['name'] . "</td>\n"; |
|||
if ($CONF['quota'] == 'YES') print " <td>" . substr ($tMailbox[$i]['quota'], 0, -6) . "</td>\n"; |
|||
print " <td>" . $tMailbox[$i]['modified'] . "</td>\n"; |
|||
$active = ($tMailbox[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; |
|||
print " <td>" . $active . "</td>\n"; |
|||
print " <td><a href=\"edit-mailbox.php?username=" . urlencode ($tMailbox[$i]['username']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; |
|||
print " <td><a href=\"delete.php?delete=" . urlencode ($tMailbox[$i]['username']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . "')\">" . $PALANG['del'] . "</a></td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
print "</table>\n"; |
|||
print "</center>\n"; |
|||
print "<p />\n"; |
|||
} |
|||
?> |
|||
@ -0,0 +1,62 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pPassword_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pPassword_admin'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $SESSID_USERNAME . "\n";?> |
|||
</td> |
|||
<td> |
|||
<?php print $pPassword_admin_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pPassword_password_current'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword_current" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pPassword_password_current_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pPassword_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pPassword_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pPassword_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pPassword_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,66 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pSendmail_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pSendmail_admin'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $SESSID_USERNAME . "\n"; ?> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pSendmail_to'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fTo" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pSendmail_subject'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fSubject" value="<?php print $PALANG['pSendmail_subject_text']; ?>" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
|
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pSendmail_body'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<textarea rows="20" cols="80" name="fBody"> |
|||
<?php print $PALANG['pSendmail_body_text'] . "\n"; ?> |
|||
</textarea> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
|
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pSendmail_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,50 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pEdit_alias_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pEdit_alias_address'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $USERID_USERNAME . "\n"; ?> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pEdit_alias_goto'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<textarea rows="4" cols="23" name="fGoto"> |
|||
<?php |
|||
$array = preg_split ('/,/', $tGoto); |
|||
for ($i = 0 ; $i < sizeof ($array) ; $i++) |
|||
{ |
|||
if (empty ($array[$i])) continue; |
|||
if ($array[$i] == $USERID_USERNAME) continue; |
|||
print "$array[$i]\n"; |
|||
} |
|||
?> |
|||
</textarea> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pEdit_alias_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,62 @@ |
|||
<?php |
|||
if ($CONF['logo'] == "YES") |
|||
{ |
|||
print "<img src=\"../postfixadmin.png\" />\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<h1>" . $CONF['header_text'] . "</h1>\n"; |
|||
} |
|||
?> |
|||
<p /> |
|||
<center> |
|||
<font color="red"><?php print $tMessage; ?></font> |
|||
<table width="10%" border="0" cellspacing="0" cellpadding="0" height="100"> |
|||
<tr bgcolor="#999999"> |
|||
<td colspan="3" height="1"> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td bgcolor="#999999"> |
|||
</td> |
|||
<td bgcolor="#eeeeee" valign="top"> |
|||
<table border="0" cellspacing="0" cellpadding="6"> |
|||
<tr> |
|||
<td colspan="2" align="center"> |
|||
<br /> |
|||
<b><?php print $PALANG['pUsersLogin_welcome']; ?></b><br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<td align="right"> |
|||
<form name="login" method="post"> |
|||
<?php print $PALANG['pUsersLogin_username'] . ":\n"; ?> |
|||
</td> |
|||
<td align="left"> |
|||
<input type="text" name="fUsername" value="<?php print $tUsername; ?>" /><br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="right"> |
|||
<?php print $PALANG['pUsersLogin_password'] . ":\n"; ?> |
|||
</td> |
|||
<td align="left"> |
|||
<input type="password" name="fPassword" /><br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="2"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pUsersLogin_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
</td> |
|||
<td bgcolor="#999999"> |
|||
</td> |
|||
</tr> |
|||
<tr bgcolor="#999999"> |
|||
<td colspan="3" height="1"> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,39 @@ |
|||
<center> |
|||
<table class="auto" border="0"> |
|||
<tr> |
|||
<td colspan="2" nowrap> |
|||
<?php print $PALANG['pUsersMain_welcome'] . "\n"; ?> |
|||
<p /> |
|||
</td> |
|||
</tr> |
|||
<?php |
|||
if ($CONF['vacation'] == 'YES') |
|||
{ |
|||
print "<tr>\n"; |
|||
print " <td nowrap>\n"; |
|||
print " <a target=\"_top\" href=\"vacation.php\">" . $PALANG['pUsersMenu_vacation'] . "</a>\n"; |
|||
print " </td>\n"; |
|||
print " <td>\n"; |
|||
print " " . $PALANG['pUsersMain_vacation'] . "\n"; |
|||
print " </td>\n"; |
|||
print "</tr>\n"; |
|||
} |
|||
?> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="edit-alias.php"><?php print $PALANG['pUsersMenu_edit_alias']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pUsersMain_edit_alias'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td nowrap> |
|||
<a target="_top" href="password.php"><?php print $PALANG['pUsersMenu_password']; ?></a> |
|||
</td> |
|||
<td> |
|||
<?php print $PALANG['pUsersMain_password'] . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<hr /> |
|||
@ -0,0 +1,37 @@ |
|||
<table class="auto"> |
|||
<tr> |
|||
<?php |
|||
if ($CONF['vacation'] == "YES") |
|||
{ |
|||
print " <td width=\"8\">\n"; |
|||
print " \n"; |
|||
print " </td>\n"; |
|||
print " <td class=\"menu\">\n"; |
|||
print " <a target=\"_top\" href=\"vacation.php\">" . $PALANG['pUsersMenu_vacation'] . "</a>\n"; |
|||
print " </td>\n"; |
|||
} |
|||
?> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="edit-alias.php"><?php print $PALANG['pUsersMenu_edit_alias']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="password.php"><?php print $PALANG['pUsersMenu_password']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
<td class="menu"> |
|||
<a target="_top" href="logout.php"><?php print $PALANG['pMenu_logout']; ?></a> |
|||
</td> |
|||
<td width="8"> |
|||
|
|||
</td> |
|||
</tr> |
|||
</table> |
|||
<hr /> |
|||
@ -0,0 +1,62 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pPassword_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pPassword_admin'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $USERID_USERNAME . "\n"; ?> |
|||
</td> |
|||
<td> |
|||
<?php print $pPassword_admin_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pPassword_password_current'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword_current" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pPassword_password_current_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pPassword_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pPassword_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pPassword_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pPassword_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,17 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center"> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center"> |
|||
<form name="vacation" method="post"> |
|||
<input type="submit" name="fBack" value="<?php print $PALANG['pUsersVacation_button_back']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,42 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pUsersVacation_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="vacation" method="post"> |
|||
<?php print $PALANG['pUsersVacation_subject'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fSubject" value="<?php print $PALANG['pUsersVacation_subject_text']; ?>" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pUsersVacation_body'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<textarea rows="10" cols="80" name="fBody"> |
|||
<?php print $PALANG['pUsersVacation_body_text'] . "\n"; ?> |
|||
</textarea> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="fAway" value="<?php print $PALANG['pUsersVacation_button_away']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,62 @@ |
|||
<center> |
|||
<?php print $tMessage; ?> |
|||
<table class="form"> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<?php print $PALANG['pVcp_welcome'] . "\n"; ?> |
|||
<br /> |
|||
<br /> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<form name="mailbox" method="post"> |
|||
<?php print $PALANG['pVcp_username'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="text" name="fUsername" value="<?php print $tUsername; ?>" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pVcp_username_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pVcp_password_current'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword_current" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pVcp_password_current_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pVcp_password'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword" /> |
|||
</td> |
|||
<td> |
|||
<?php print $pVcp_password_text . "\n"; ?> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td> |
|||
<?php print $PALANG['pVcp_password2'] . ":\n"; ?> |
|||
</td> |
|||
<td> |
|||
<input type="password" name="fPassword2" /> |
|||
</td> |
|||
<td> |
|||
|
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td align="center" colspan="3"> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pVcp_button']; ?>" /> |
|||
</form> |
|||
</td> |
|||
</tr> |
|||
</table> |
|||
@ -0,0 +1,53 @@ |
|||
<center> |
|||
<form name="overview" method="post"> |
|||
<select name="fDomain"> |
|||
<?php |
|||
for ($i = 0; $i < sizeof ($list_domains); $i++) |
|||
{ |
|||
if ($fDomain == $list_domains[$i]) |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\" selected>$list_domains[$i]</option>\n"; |
|||
} |
|||
else |
|||
{ |
|||
print "<option value=\"$list_domains[$i]\">$list_domains[$i]</option>\n"; |
|||
} |
|||
} |
|||
?> |
|||
</select> |
|||
<input type="submit" name="submit" value="<?php print $PALANG['pViewlog_button']; ?>" /> |
|||
</form> |
|||
<p /> |
|||
<?php |
|||
|
|||
print "<b>". $PALANG['pViewlog_welcome'] . $fDomain . "</b><br />\n"; |
|||
print "<p />\n"; |
|||
|
|||
if (sizeof ($tLog) > 0) |
|||
{ |
|||
print "<center>\n"; |
|||
print "<table class=\"auto\" border=\"1\">\n"; |
|||
print " <tr class=\"header\">\n"; |
|||
print " <td>" . $PALANG['pViewlog_timestamp'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pViewlog_username'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pViewlog_domain'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pViewlog_action'] . "</td>\n"; |
|||
print " <td>" . $PALANG['pViewlog_data'] . "</td>\n"; |
|||
print " </tr>\n"; |
|||
|
|||
for ($i = 0; $i < sizeof ($tLog); $i++) |
|||
{ |
|||
print " <tr onMouseOver=\"this.bgColor='#dfdfdf'\" onMouseOut =\"this.bgColor ='#ffffff'\" bgcolor=\"#ffffff\">\n"; |
|||
print " <td>" . $tLog[$i]['timestamp'] . "</td>\n"; |
|||
print " <td>" . $tLog[$i]['username'] . "</td>\n"; |
|||
print " <td>" . $tLog[$i]['domain'] . "</td>\n"; |
|||
print " <td>" . $tLog[$i]['action'] . "</td>\n"; |
|||
print " <td>" . $tLog[$i]['data'] . "</td>\n"; |
|||
print " </tr>\n"; |
|||
} |
|||
|
|||
print "</table>\n"; |
|||
print "</center>\n"; |
|||
print "<p />\n"; |
|||
} |
|||
?> |
|||
@ -0,0 +1,98 @@ |
|||
<?php |
|||
//
|
|||
// File: edit-alias.php
|
|||
//
|
|||
// Template File: users_edit-alias.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tGoto
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fAddress
|
|||
// fDomain
|
|||
// fGoto
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$USERID_USERNAME = check_user_session (); |
|||
$tmp = preg_split ('/@/', $USERID_USERNAME); |
|||
$USERID_DOMAIN = $tmp[1]; |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$result = db_query ("SELECT * FROM alias WHERE address='$USERID_USERNAME'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$tGoto = $row['goto']; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pEdit_alias_address_error']; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/users_edit-alias.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pEdit_alias_goto = $PALANG['pEdit_alias_goto']; |
|||
|
|||
$fGoto = $_POST['fGoto']; |
|||
|
|||
$goto = preg_replace ('/\r\n/', ',', $fGoto); |
|||
$goto = preg_replace ('/[\s]+/i', '', $goto); |
|||
$goto = preg_replace ('/\,*$/', '', $goto); |
|||
$array = preg_split ('/,/', $goto); |
|||
|
|||
for ($i = 0; $i < sizeof ($array); $i++) { |
|||
if (in_array ("$array[$i]", $CONF['default_aliases'])) continue; |
|||
if (empty ($array[$i])) continue; |
|||
if (!check_email ($array[$i])) |
|||
{ |
|||
$error = 1; |
|||
$tGoto = $goto; |
|||
$tMessage = $PALANG['pEdit_alias_goto_text_error2'] . "$array[$i]</font>"; |
|||
} |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
if (empty ($fGoto)) |
|||
{ |
|||
$goto = $USERID_USERNAME; |
|||
} |
|||
else |
|||
{ |
|||
$goto = $USERID_USERNAME . "," . $goto; |
|||
} |
|||
|
|||
$result = db_query ("UPDATE alias SET goto='$goto',modified=NOW() WHERE address='$USERID_USERNAME'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$tMessage = $PALANG['pEdit_alias_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
db_log ($USERID_USERNAME, $USERID_DOMAIN, "edit alias", "$USERID_USERNAME -> $goto"); |
|||
|
|||
header ("Location: main.php"); |
|||
exit; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/users_edit-alias.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,17 @@ |
|||
<?php |
|||
//
|
|||
// File: index.php
|
|||
//
|
|||
// Template File: -none-
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
header ("Location: login.php"); |
|||
exit; |
|||
?>
|
|||
@ -0,0 +1,69 @@ |
|||
<?php |
|||
//
|
|||
// File: login.php
|
|||
//
|
|||
// Template File: login.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tUsername
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fUsername
|
|||
// fPassword
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_login.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fUsername = $_POST['fUsername']; |
|||
$fPassword = $_POST['fPassword']; |
|||
|
|||
$result = db_query ("SELECT password FROM mailbox WHERE username='$fUsername'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$salt = preg_split ('/\$/', $row['password']); |
|||
$password = pacrypt ($fPassword, $salt[2]); |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE username='$fUsername' AND password='$password'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pLogin_password_incorrect']; |
|||
$tUsername = $fUsername; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pLogin_username_incorrect']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
session_start(); |
|||
session_register("userid"); |
|||
$_SESSION['userid']['username'] = $fUsername; |
|||
|
|||
header("Location: main.php"); |
|||
exit; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_login.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,25 @@ |
|||
<?php |
|||
//
|
|||
// File: logout.php
|
|||
//
|
|||
// Template File: -none-
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
|
|||
$USERID_USERNAME = check_user_session (); |
|||
|
|||
session_unset (); |
|||
session_destroy (); |
|||
|
|||
header ("Location: login.php"); |
|||
exit; |
|||
?>
|
|||
@ -0,0 +1,36 @@ |
|||
<?php |
|||
//
|
|||
// File: main.php
|
|||
//
|
|||
// Template File: main.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// -none-
|
|||
//
|
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$USERID_USERNAME = check_user_session (); |
|||
|
|||
if ($_SERVER["REQUEST_METHOD"] == "GET") |
|||
{ |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/users_main.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER["REQUEST_METHOD"] == "POST") |
|||
{ |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/users_main.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,90 @@ |
|||
<?php |
|||
//
|
|||
// File: password.php
|
|||
//
|
|||
// Template File: users_password.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fPassword_current
|
|||
// fPassword
|
|||
// fPassword2
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$USERID_USERNAME = check_user_session (); |
|||
$tmp = preg_split ('/@/', $USERID_USERNAME); |
|||
$USERID_DOMAIN = $tmp[1]; |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/users_password.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$pPassword_password_text = $PALANG['pPassword_password_text']; |
|||
|
|||
$fPassword_current = $_POST['fPassword_current']; |
|||
$fPassword = $_POST['fPassword']; |
|||
$fPassword2 = $_POST['fPassword2']; |
|||
|
|||
$username = $USERID_USERNAME; |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE username='$username'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array ($result['result']); |
|||
$salt = preg_split ('/\$/', $row['password']); |
|||
$checked_password = pacrypt ($fPassword_current, $salt[2]); |
|||
|
|||
$result = db_query ("SELECT * FROM mailbox WHERE username='$username' AND password='$checked_password'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$pPassword_password_current_text = $PALANG['pPassword_password_current_text_error']; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
$error = 1; |
|||
$pPassword_email_text = $PALANG['pPassword_email_text_error']; |
|||
} |
|||
|
|||
if (empty ($fPassword) or ($fPassword != $fPassword2)) |
|||
{ |
|||
$error = 1; |
|||
$pPassword_password_text = $PALANG['pPassword_password_text_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$password = pacrypt ($fPassword); |
|||
$result = db_query ("UPDATE mailbox SET password='$password',modified=NOW() WHERE username='$username'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$tMessage = $PALANG['pPassword_result_succes']; |
|||
db_log ($USERID_USERNAME, $USERID_DOMAIN, "change password", "$USERID_USERNAME"); |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pPassword_result_error']; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/users_password.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,89 @@ |
|||
<?php |
|||
//
|
|||
// File: vacation.php
|
|||
//
|
|||
// Template File: users_vacation.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tSubject
|
|||
// tBody
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fSubject
|
|||
// fBody
|
|||
//
|
|||
require ("../variables.inc.php"); |
|||
require ("../config.inc.php"); |
|||
require ("../functions.inc.php"); |
|||
include ("../languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$USERID_USERNAME = check_user_session (); |
|||
$tmp = preg_split ('/@/', $USERID_USERNAME); |
|||
$USERID_DOMAIN = $tmp[1]; |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
|
|||
$result = db_query("SELECT * FROM vacation WHERE email='$USERID_USERNAME'"); |
|||
if ($result['rows'] == 1) |
|||
{ |
|||
$row = mysql_fetch_array($result['result']); |
|||
$tMessage = $PALANG['pUsersVacation_welcome_text']; |
|||
$template = "users_vacation-get.tpl"; |
|||
} |
|||
else |
|||
{ |
|||
$template = "users_vacation.tpl"; |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/$template"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fSubject = $_POST['fSubject']; |
|||
$fBody = $_POST['fBody']; |
|||
$fAway = $_POST['fAway']; |
|||
$fBack = $_POST['fBack']; |
|||
|
|||
if (!empty ($fBack)) |
|||
{ |
|||
$result = db_query ("DELETE FROM vacation WHERE email='$USERID_USERNAME'"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pUsersVacation_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
$tMessage = $PALANG['pUsersVacation_result_succes']; |
|||
} |
|||
} |
|||
|
|||
if (!empty ($fAway)) |
|||
{ |
|||
$result = db_query ("INSERT INTO vacation (email,subject,body,domain,created) VALUES ('$USERID_USERNAME','$fSubject','$fBody','$USERID_DOMAIN',NOW())"); |
|||
if ($result['rows'] != 1) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pUsersVacation_result_error']; |
|||
} |
|||
else |
|||
{ |
|||
header ("Location: main.php"); |
|||
exit; |
|||
} |
|||
} |
|||
|
|||
include ("../templates/header.tpl"); |
|||
include ("../templates/users_menu.tpl"); |
|||
include ("../templates/users_vacation.tpl"); |
|||
include ("../templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,65 @@ |
|||
<?php |
|||
$error = ""; |
|||
$quota = ""; |
|||
$fActive = ""; |
|||
$fAddress = ""; |
|||
$fAliases = ""; |
|||
$fDefaultaliases = ""; |
|||
$fDelete = ""; |
|||
$fDescription = ""; |
|||
$fDomain = ""; |
|||
$fDomains = ""; |
|||
$fGoto = ""; |
|||
$fMail = ""; |
|||
$fMailboxes = ""; |
|||
$fMaxquota = ""; |
|||
$fName = ""; |
|||
$fPassword = ""; |
|||
$fPassword2 = ""; |
|||
$fQuota = ""; |
|||
$fTable = ""; |
|||
$fUsername = ""; |
|||
$fWhere = ""; |
|||
$tActive = ""; |
|||
$tActive = ""; |
|||
$tAddress = ""; |
|||
$tAlias = ""; |
|||
$tAliases = ""; |
|||
$tBody = ""; |
|||
$tDefaultaliases = ""; |
|||
$tDescription = ""; |
|||
$tDomain = ""; |
|||
$tDomains = ""; |
|||
$tFrom = ""; |
|||
$tGoto = ""; |
|||
$tLog = ""; |
|||
$tMailbox = ""; |
|||
$tMailboxes = ""; |
|||
$tMaxquota = ""; |
|||
$tMessage = ""; |
|||
$tName = ""; |
|||
$tQuota = ""; |
|||
$tSubject = ""; |
|||
$tUsername = ""; |
|||
|
|||
$pAdminCreate_admin_password_text = ""; |
|||
$pAdminCreate_admin_username_text = ""; |
|||
$pAdminCreate_domain_defaultaliases_text = ""; |
|||
$pAdminCreate_domain_domain_text = ""; |
|||
$pAdminEdit_admin_password_text = ""; |
|||
$pCreate_alias_address_text = ""; |
|||
$pCreate_alias_goto_text = ""; |
|||
$pCreate_mailbox_name_text = ""; |
|||
$pCreate_mailbox_password_text = ""; |
|||
$pCreate_mailbox_quota_text = ""; |
|||
$pCreate_mailbox_username_text = ""; |
|||
$pEdit_mailbox_password_text = ""; |
|||
$pEdit_mailbox_quota_text = ""; |
|||
$pEdit_mailbox_username_text = ""; |
|||
$pPassword_admin_text = ""; |
|||
$pPassword_password_current_text = ""; |
|||
$pPassword_password_text = ""; |
|||
$pVcp_password_current_text = ""; |
|||
$pVcp_password_text = ""; |
|||
$pVcp_username_text = ""; |
|||
?>
|
|||
@ -0,0 +1,79 @@ |
|||
<?php |
|||
//
|
|||
// File: viewlog.php
|
|||
//
|
|||
// Template File: viewlog.tpl
|
|||
//
|
|||
// Template Variables:
|
|||
//
|
|||
// tMessage
|
|||
// tLog
|
|||
//
|
|||
// Form POST \ GET Variables:
|
|||
//
|
|||
// fDomain
|
|||
//
|
|||
require ("./variables.inc.php"); |
|||
require ("./config.inc.php"); |
|||
require ("./functions.inc.php"); |
|||
include ("./languages/" . $CONF['language'] . ".lang"); |
|||
|
|||
$SESSID_USERNAME = check_session(); |
|||
$list_domains = list_domains_for_admin ($SESSID_USERNAME); |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "GET") |
|||
{ |
|||
$fDomain = $list_domains[0]; |
|||
|
|||
if (!check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pViewlog_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$result = db_query ("SELECT * FROM log WHERE domain='$fDomain' ORDER BY timestamp DESC LIMIT 10"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tLog[] = $row; |
|||
} |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/viewlog.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
|
|||
if ($_SERVER['REQUEST_METHOD'] == "POST") |
|||
{ |
|||
$fDomain = $_POST['fDomain']; |
|||
|
|||
if (!check_owner ($SESSID_USERNAME, $fDomain)) |
|||
{ |
|||
$error = 1; |
|||
$tMessage = $PALANG['pViewlog_error']; |
|||
} |
|||
|
|||
if ($error != 1) |
|||
{ |
|||
$result = db_query ("SELECT * FROM log WHERE domain='$fDomain' ORDER BY timestamp DESC LIMIT 10"); |
|||
if ($result['rows'] > 0) |
|||
{ |
|||
while ($row = mysql_fetch_array ($result['result'])) |
|||
{ |
|||
$tLog[] = $row; |
|||
} |
|||
} |
|||
} |
|||
|
|||
include ("./templates/header.tpl"); |
|||
include ("./templates/menu.tpl"); |
|||
include ("./templates/viewlog.tpl"); |
|||
include ("./templates/footer.tpl"); |
|||
} |
|||
?>
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue