Şirkette kullandığımız MySQL destekli Postfix ve Dovecot kurulumunun nasıl yapıldığı konusunda sürekli mailler alıyorum, kısaca nasıl olduğunu anlatacağım. Bu kopyala yapıştır bir anlatımdır, ve linux altında dosyaları nasıl düzenlemeniz gerektiği, ya da MySQL ile nasıl bir veritabanı yaratıp, nasıl işletileceği konularına hakim olmanız gerekiyor. Yazının ilerleyen kısımlarında da açıkladım, ama kurulumdan önce bilmeniz gereken en önemli şey bu sunucu kurulumunda /home klasörü ayrı bir bölümdedir, böylece sistemdeki arızalardan en az etkilenir.
Kurulumla ilgili tüm dosyaları http://www.serbestcagrisim.com/dosyalar/PDM/ adresinde bulabilirsiniz.
Öncelikle Ubuntu server kullanıyorum ve tüm ayarların Ubuntu’ya göre olduğunu bilmekte fayda var, herhangi bir dosyanın yerini bulamıyorsanız, şunu deneyin;
locate dosya_adi
Kopyala yapıştır bir kurulum için aşağıdaki komutları kopyalayıp yapıştırabilirsiniz.
apt-get install postfix postfix-mysql postgrey \ dovecot-common dovecot-pop3d dovecot-imapd \ libsasl2-modules multitail mysql-server
libsasl2-modules’u kurmamızın nedeni diğer sunucularla konuşabilmek, yoksa Cyrus’u kullanarak herhangi bir authentication yapacağımızdan değil. Ayrıca yazının en sonunda burada yarattığımız tüm dosyaları ve SQL dosyasını bulabilirsiniz. Yani tek tek dosya yaratmakla uğraşmak yerine direkt indirip, sunucunuza uygulayabilirsiniz.
1. MySQL Hazırlığı
Şimdi gelelim kurulum kısmına, SQL olarak şu kurulumu kullanıyorum, MySQL sunucunuz üzerinde herhangi bir veritabanı yaratıp, phpMySQLAdmin (PMA) ile aşağıdaki kodları kolayca uygulayabilirsiniz;
CREATE TABLE IF NOT EXISTS `Access` ( `Id` int(5) NOT NULL auto_increment, `Domain` varchar(255) NOT NULL, `Adres` varchar(255) NOT NULL, `Durum` varchar(255) NOT NULL default '550 No soup for you, next!', `Status` tinyint(1) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Adres` (`Adres`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; CREATE TABLE IF NOT EXISTS `Alias` ( `Id` int(5) NOT NULL auto_increment, `Domain` varchar(255) NOT NULL, `Original` varchar(255) NOT NULL, `Destination` text NOT NULL, `Status` tinyint(1) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Original` (`Original`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; CREATE TABLE IF NOT EXISTS `BCC` ( `Id` int(5) NOT NULL auto_increment, `Domain` varchar(255) NOT NULL, `Original` varchar(255) NOT NULL, `Destination` text NOT NULL, `Status` tinyint(1) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Original` (`Original`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `Domains` ( `Id` int(5) NOT NULL auto_increment, `Name` varchar(255) NOT NULL, `Password` varchar(32) NOT NULL, `Status` tinyint(1) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Name` (`Name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; CREATE TABLE IF NOT EXISTS `Transports` ( `Id` int(5) NOT NULL auto_increment, `Incoming` varchar(255) NOT NULL, `Outgoing` varchar(255) NOT NULL, `Status` tinyint(1) NOT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `Incoming` (`Incoming`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; CREATE TABLE IF NOT EXISTS `Users` ( `Id` int(5) NOT NULL auto_increment, `Domain` varchar(255) NOT NULL, `Username` varchar(255) NOT NULL, `Password` varchar(32) NOT NULL, `Quota` int(10) NOT NULL default '10485760', `Status` tinyint(1) NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
Neyin ne olduğunu postfix kurulum kısmında anlayacaksınız ancak kısaca değinmek gerekirse bu kurulumda gerçek bir sanal host uygulaması yapacağız, isterseniz tek bir domain, isterseniz birden fazla domain için bu kurulumu kullanabilirsiniz. Şimdi MySQL ayarlarını yapalım;
mysqladmin -u root -p create mailAdmin mysql -u root -p mailAdmin < mailAdmin.txt
Kullanıcıyı root olarak bırakacağım, eğer ihtiyaç duyarsanız root’tan farklı bir kullanıcı tanımlayabilirsiniz.