diff --git a/README.md b/README.md index c42e600..21c279f 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,75 @@ Fork of Postfix Admin 2.1.0 (released in 2007) +Database needed to use SQL with OpenSMTPD + + CREATE DATABASE IF NOT EXISTS `opensmtpd` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; + USE `opensmtpd`; + + 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(1) NOT NULL DEFAULT 1 + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Admins'; + + 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(1) NOT NULL DEFAULT 1 + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Aliases'; + + CREATE TABLE `domain` ( + `domain` varchar(255) NOT NULL DEFAULT '', + `description` varchar(255) NOT NULL DEFAULT '', + `aliases` int(10) NOT NULL DEFAULT 0, + `mailboxes` int(10) NOT NULL DEFAULT 0, + `maxquota` int(10) NOT NULL DEFAULT 0, + `transport` varchar(255) DEFAULT NULL, + `backupmx` tinyint(1) NOT NULL DEFAULT 0, + `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `active` tinyint(1) NOT NULL DEFAULT 1 + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Domains'; + + 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(1) NOT NULL DEFAULT 1 + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Domain Admins'; + + 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 '' + ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Log'; + + + +Config for OpenSMTPTD, MySQL/MariaDB example: + + # /etc/mail/smtpd.conf + table credentials mysql:/etc/mail/sql.conf + table domains mysql:/etc/mail/sql.conf + table userinfo mysql:/etc/mail/sql.conf + table virtuals mysql:/etc/mail/sql.conf + +Connecting the database to smtpd: + + # /etc/mail/sql.conf + host localhost + username opensmtpd + password RandomString + database opensmtpd + + query_alias SELECT goto FROM alias WHERE address=?; + query_credentials SELECT username, password FROM mailbox WHERE username=? AND active='1'; + query_domain SELECT domain FROM domain WHERE domain=? AND active='1'; + query_userinfo SELECT 501, 501, maildir FROM mailbox WHERE username=? AND active='1'; diff --git a/VIRTUAL_VACATION/README.md b/VIRTUAL_VACATION/README.md index e69de29..77707d8 100644 --- a/VIRTUAL_VACATION/README.md +++ b/VIRTUAL_VACATION/README.md @@ -0,0 +1,20 @@ +## Virtual Vacation + +Virtual Vacation is a Perl script to be used in combination with OpenSMTPD Admin. +It provides OOO, Auto Response, Vacation capabilities to virtual users. + +To invoke vacation.pl add the following to your /etc/mail/smtpd.conf + + filter filter-from proc-exec "vacation.pl" + +When vacation.pl is located in: /usr/local/libexec/smtpd + +It requires the following libraries to be installed for MariaDB: + +pkg_add p5-DBI p5-DBD-MariaDB + +You can run vacation.pl with the following flags: + +- -l = logging of virtual vacation parsed report/filter streams and decisions +- -v = verbose (extra flag) logging of report stream +- -d = debug (extra flag) logging of filter stream diff --git a/index.php b/index.php index b60c494..103eed2 100644 --- a/index.php +++ b/index.php @@ -17,27 +17,11 @@ // // -none- // -if (!file_exists(realpath("./setup.php"))) { +if (file_exists(realpath("./config.inc.php"))) { header ("Location: login.php"); exit; } else { - print <<< EOF - - -Welcome to OpenSMTPD Admin - - - - -

Welcome to OpenSMTPD Admin

-It seems that you are running this version of OpenSMTPD Admin for the first time.
-

-You can now run setup to make sure that all the functions are available for OpenSMTPD Admin to run.
-

-If you still encounter any problems please check the documentation and website for more information. -

- - -EOF; + header ("Location: setup.php"); + exit; } ?> diff --git a/setup.php b/setup.php index 81eae7f..98b3a8c 100644 --- a/setup.php +++ b/setup.php @@ -25,7 +25,14 @@ +

Welcome to OpenSMTPD Admin

OpenSMTPD Admin Setup Checker 1.0

+It seems that you are running this version of OpenSMTPD Admin for the first time.
+

+This will tell you if all functions are available for OpenSMTPD Admin to run.
+

+If you still encounter any problems please check the documentation and website for more information.
+

Running software: