OpenSMTPD Admin - Administrative webshell for OpenSMTPD
admin | ||
images | ||
languages | ||
templates | ||
users | ||
VIRTUAL_VACATION | ||
.gitignore | ||
config.inc.php.sample | ||
create-alias.php | ||
create-mailbox.php | ||
delete.php | ||
edit-active.php | ||
edit-alias.php | ||
edit-mailbox.php | ||
functions.inc.php | ||
index.php | ||
LICENSE.TXT | ||
login.php | ||
logout.php | ||
main.php | ||
overview.php | ||
password.php | ||
README.md | ||
search.php | ||
sendmail.php | ||
setup.php | ||
stylesheet.css | ||
variables.inc.php | ||
viewlog.php |
OpenSMTPD Admin
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:
```
# cat /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:
```
# cat /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';
```