{"id":45,"date":"2009-09-19T01:56:34","date_gmt":"2009-09-18T22:56:34","guid":{"rendered":"http:\/\/www.umutbesler.com\/?page_id=45"},"modified":"2009-09-19T02:13:42","modified_gmt":"2009-09-18T23:13:42","slug":"postfix-mail-server-kurulum-dokumani-postfixmysql-courier-imap-smtp-auth","status":"publish","type":"page","link":"http:\/\/www.umutbesler.com\/dokumanlar\/postfix-mail-server-kurulum-dokumani-postfixmysql-courier-imap-smtp-auth\/","title":{"rendered":"Postfix Mail Server Kurulum Dokumani (Postfix+Mysql +Courier Imap+ SMTP Auth)"},"content":{"rendered":"

Postfix Mail Server Kurulum Dokumani (Postfix+Mysql +Courier Imap+ SMTP Auth)<\/strong>
\nHazirlayan :<\/strong> Umut Besler
\n28.01.2003<\/p>\n

Bu dokuman Postfix mail server uzerinde virtual domain olusturarak mail hizmeti vermeyi aciklayacaktir.
\nAyn\u0131 sistemi Debian \u00fczerinde \u00e7al\u0131\u015ft\u0131rmak i\u00e7in\u00a0Postfix Debian<\/a> d\u00f6k\u00fcman\u0131mdan faydalanabilirsiniz.<\/p>\n

Oncelikle belirtmeliyimki bu program paketini kurmaya karar verdiyseniz biraz sabirli olmalisiniz. Cunku kurulum sirasinda veya kurulum sonrasi nerden kaynaklandigini bilmediginiz hatalar cikabiliyor ve bunlar ile biraz ugrasmaniz gerekebiliyor. Ben kendi yasadigim sorunlar kapsaminda bu dokumani yazarak minimum duzeyde sorun yasmanizi saglamaya calisacagim.<\/p>\n

Oncelikle kurulmasi gereken paketler:<\/p>\n

Mysql
\nPostfix 1.1.12 (daha ust versiyonlardada ayni sekilde calisacaktir)
\nCourier Imap
\nCyrus-sasl
\nPam<\/p>\n

Mysql :<\/strong> Domain bilgilerimizi mysql database\u2019inde tutacagiz. Bunun avantaji kullanicilarin database\u2019den direk eklenip silinebilmesidir. Boylece sistem icin web arayuzude yazilmasi kolaylasacaktir.<\/p>\n

Postfix :<\/strong> Mail server olarak postfix kullanacagiz.
\nCourier Imap :<\/strong> Imap ve pop3 server olarak kullanacagiz.
\nCyrus Sasl :<\/strong> SMTP Auth yapilabilmesi icin gerekli program.
\nPam :<\/strong> SMTP Auth yapilirken cyrus-sasl programinin mysql\u2019den verileri okumasi icin gerekli program.<\/p>\n

MySql :
\n<\/strong>Mysql database yapimiz asagidaki gibi olacak:
\n
\nmysql> show tables;
\n+------------------+
\n| Tables_in_maildb |
\n+------------------+
\n| transport\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0|
\n| users\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0|
\n| virtual\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0|
\n+------------------+
\n3 rows in set (0.00 sec)<\/p>\n

mysql> describe transport;
\n+-----------+--------------+------+-----+---------+-------+
\n| Field\u00a0\u00a0\u00a0\u00a0 | Type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Null | Key | Default | Extra |
\n+-----------+--------------+------+-----+---------+-------+
\n| domain\u00a0\u00a0\u00a0 | varchar(128) |\u00a0\u00a0\u00a0\u00a0\u00a0 | PRI |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |
\n| transport | varchar(128) |\u00a0\u00a0\u00a0\u00a0\u00a0 | MUL |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |
\n+-----------+--------------+------+-----+---------+-------+
\n2 rows in set (0.00 sec)<\/p>\n

mysql> describe virtual;
\n+---------+--------------+------+-----+---------+-------+
\n| Field\u00a0\u00a0\u00a0| Type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| Null | Key | Default | Extra |
\n+---------+--------------+------+-----+---------+-------+
\n| address | varchar(255) |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| PRI |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| goto\u00a0\u00a0\u00a0\u00a0| varchar(255) |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n+---------+--------------+------+-----+---------+-------+
\n2 rows in set (0.01 sec)<\/p>\n

mysql> describe users;
\n+---------+----------------------+------+-----+---------+-------+
\n| Field\u00a0\u00a0\u00a0| Type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| Null | Key | Default | Extra |
\n+---------+----------------------+------+-----+---------+-------+
\n| id\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| varchar(128)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| PRI |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| address | varchar(128)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| UNI |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| crypt\u00a0\u00a0\u00a0| varchar(128)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| clear\u00a0\u00a0\u00a0| varchar(128)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| name\u00a0\u00a0\u00a0\u00a0| varchar(128)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| uid\u00a0\u00a0\u00a0\u00a0\u00a0| smallint(5) unsigned |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0| 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| gid\u00a0\u00a0\u00a0\u00a0\u00a0| smallint(5) unsigned |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0| 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| home\u00a0\u00a0\u00a0\u00a0| varchar(128)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0| \/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| domain\u00a0\u00a0| varchar(128)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| maildir | varchar(255)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| imapok\u00a0\u00a0| tinyint(3) unsigned\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0| 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| bool1\u00a0\u00a0\u00a0| tinyint(3) unsigned\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0| 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n| bool2\u00a0\u00a0\u00a0| tinyint(3) unsigned\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0| 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0|
\n+---------+----------------------+------+-----+---------+-------+
\n13 rows in set (0.01 sec)
\n<\/code>
\nTransport taki alanlarin aciklamalari:<\/strong><\/p>\n\n\n\n\n
domain<\/td>\nHost edeceginiz domain adi. \u201cvirtual\u201d ve \u201clocal\u201d olarak host edecekleriniz dahil.<\/td>\n<\/tr>\n
transport<\/td>\nHost edeceginiz domain tipi. Virtual domainler icin \u201cvirtual:\u201d, local kullanicilar icin \u201clocal:\u201d yazabilirsiniz.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

Virtual daki alanlarin aciklamalari:<\/strong><\/p>\n\n\n\n\n
address<\/td>\nGelen mail adresi<\/td>\n<\/tr>\n
goto<\/td>\nUstteki mail adresinden gelen maillerin yonlendirilecegi adres.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

Users daki alanlarin aciklamalari:<\/strong><\/p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
id<\/td>\nKullanici adi.\u00a0user@domain.com<\/a> seklinde<\/td>\n<\/tr>\n
address<\/td>\nKullanici mail adresi.\u00a0user@domain.com<\/a> seklinde<\/td>\n<\/tr>\n
crypt<\/td>\nSifrenin sifreli (crypted) hali. Eger sifrenin bu sekilde saklanmasini istemiyorsaniz bos birakabilirsiniz. Bu alana mysqlden veri girerken querinizi encrypt(\u2018password\u2019) seklinde verebilirsiniz.<\/td>\n<\/tr>\n
clear<\/td>\nSifrenin acik hali.<\/td>\n<\/tr>\n
name<\/td>\nKullanicinin ismi. Postfix icin gerekli degil. Courier icin kullanacagiz.<\/td>\n<\/tr>\n
uid<\/td>\nvirtual uid<\/td>\n<\/tr>\n
gid<\/td>\nvirtual gid
\nHer domain icin tek gid kullanmanizi tavsiye ederim.<\/td>\n<\/tr>\n
home<\/td>\nMail klasorunuz \u201c\/\u201d veya \u201c\/var\/spool\/postfix\u201d olabilir.<\/td>\n<\/tr>\n
domain<\/td>\nKullanici domain adi.<\/td>\n<\/tr>\n
maildir<\/td>\nKullanicinin maillerinin saklanacagi klasor. Burada tam yolu kullanmanizi tavsiye ederim. Maillerde Maildir yapisini kullanacagimiz icin mutlaka sonraki \/ isaretini koymak gerekmektedir. (\u201cdomain.com\/user\/Maildir\/\u201d seklinde)<\/td>\n<\/tr>\n
imapok<\/td>\nCourier imap ile kullanicilarin maillerine ulasmayi saglayan bir ayar. 1 yaziniz. 0 yazan mailine courier uzerinden ulasamaz.<\/td>\n<\/tr>\n
bool1<\/td>\nUstteki ayar ile ayni<\/td>\n<\/tr>\n
bool2<\/td>\nUstteki ayar ile ayni<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

Simdi databasedeki tablolari tanitalim.<\/p>\n

Transport: <\/em><\/strong>Bu tablo gelen maillerin domain bilgilerini tutan tablodur. Burada o domain\u2019e ait maillerin virtual mi yoksa sistem uzerinde mi tutulacagi belirlenir.<\/p>\n

Virtual: <\/em><\/strong>Bu tabloda aliases dosyasindakine benzer bir islem yapilmaktadir. Bir adrese gelen maillerin baska bir adrese\/adreslere yonlendirilmesi bu tablodan yapilmaktadir. Mail adresleri arasina \u201c,\u201d konarak bu islem gerceklestirilebilir.<\/p>\n

Users: <\/em><\/strong>Bu tablo sahip oldugumuz tum kullanicilarin tutuldugu tablodur.<\/p>\n

Database\u2019in kolayca yaratilmasi icin mysql kodu asagidadir:
\n
\n#First Create the Database
\nCREATE DATABASE maildb;
\nuse maildb;
\n#
\n# Table structure for table 'transport'
\n#<\/p>\n

CREATE TABLE transport (
\ndomain varchar(128) NOT NULL default '',
\ntransport varchar(128) NOT NULL default '',
\nUNIQUE KEY domain (domain)
\n);<\/p>\n

#
\n# Table structure for table 'users'
\n#<\/p>\n

CREATE TABLE users (
\nid varchar(128) NOT NULL default '',
\naddress varchar(128) NOT NULL default '',
\ncrypt varchar(128) NOT NULL default '',
\nclear varchar(128) NOT NULL default '',
\nname varchar(128) NOT NULL default '',
\nuid smallint(5) unsigned NOT NULL default '1000',
\ngid smallint(5) unsigned NOT NULL default '1000',
\nhome varchar(128) NOT NULL default '\/',
\ndomain varchar(128) NOT NULL default '',
\nmaildir varchar(255) NOT NULL default '',
\nimapok tinyint(3) unsigned NOT NULL default '1',
\nbool1 tinyint(3) unsigned NOT NULL default '1',
\nbool2 tinyint(3) unsigned NOT NULL default '1',
\nPRIMARY KEY\u00a0 (id),
\nUNIQUE KEY id (id),
\nUNIQUE KEY address (address),
\nKEY id_2 (id),
\nKEY address_2 (address)
\n);<\/p>\n

#
\n# Table structure for table 'virtual'
\n#<\/p>\n

CREATE TABLE virtual (
\naddress varchar(255) NOT NULL default '',
\ngoto varchar(255) NOT NULL default '',
\nUNIQUE KEY address (address)
\n);
\n<\/code>
\nDatabase ve table\u2019lar yaratildiktan sonra uzerinde arama yapacaginiz alanlardaki indexleri kendiniz ayarlayabilirsiniz.
\nMySql ayarlarimiz burada bitti. Simdi diger programlarin ayarlarina gecelim.<\/p>\n

Cyrus SASL<\/strong><\/p>\n

Bu programi SMTP Auth ozelligi icin kullanacagiz.
\nProgram kurulumu icin ftp:\/\/ftp.andrew.cmu.edu\/pub\/cyrus-mail den programi indirebilirsiniz. Eger elinizde rpm kurulum paketi varsa dagitimdan cikan onuda kurabilirsiniz. Yalniz burada onemli olan rpm kurulumda cyrus-sasl-devel paketinide kurmaniz gerekmektedir. Tar.gz kurulumu su sekildedir:<\/p>\n

cd cyrus-sasl-<version>
\n.\/configure
\nmake
\nmake install<\/p>\n

eger rpmden kurulum yaptiysaniz \/usr\/local\/lib\/sasl’a bir sembolik link olusturun ve hedefi \/usr\/lib\/sasl olarak verin. Tar.gz den kurulum yaptiysaniz tam tersini yapin.<\/p>\n

Or: ln -s \/usr\/local\/lib\/sasl \/usr\/lib\/sasl<\/p>\n

Postfix<\/strong><\/p>\n

Postfix mail programinin tum ayarlarini main.cf uzerinde yapacagiz daha sonrada 5 adet yeni dosya yaratacagiz. Ayrica main.cf dosyasinda kullanilabilecek komutlar icin \/etc\/postfix\/ icinde sample- seklinde baslayan dosyalara bakabilirsiniz. Oncelikle portfix derlenmesi islemiyle baslayalim:
\nPostfix programini http:\/\/www.postfix.org\/ adresinden cekebilirsiniz. Tam link olarak bu dokumanda kullandigim versiyonun linki su sekilde : ftp:\/\/ftp.porcupine.org\/mirrors\/postfix-release\/official\/postfix-1.1.12.tar.gz .
\nBu adresten cekeceginiz dosyayi<\/p>\n

tar zxvf postfix-1.1.12.tar.gz<\/p>\n

komutuyla acabilirsiniz. Postfix’i mysql ve sasl destekli derleyebilmek icin MakeFile uzerinde degisiklik yapmamiz gerekmektedir. Bunun icin asagidaki komutu vermelisiniz.<\/p>\n

make -f Makefile.init makefiles ‘CCARGS=-DHAS_MYSQL -I\/usr\/include\/mysql -DUSE_SASL_AUTH’ ‘AUXLIBS=-L\/usr\/lib\/mysql -lmysqlclient -lz -lm -lsasl’<\/p>\n

Bu komutun hepsini 1 satira yazmaniz gerekmektedir. Buradaki \/usr\/include\/mysql kismi kurdugunuz dagitima gore degisiklik gosterebilir. Buraya mysql\u2019in include dosyalarinin bulundugu dizini yazmalisiniz. Ayrica cyrus-sasl programinin library dosyalari icinde CCARGS kisminin sonuna \u201c\u2013I\/usr\/local\/include\u201d ve AUXLIBS in sonuna \u201c\u2013L\/usr\/local\/lib\u201c ekleyebilirsiniz. Bu islem yapildiktan sonra MakeFile bastan olusturulacaktir.
\nBundan sonraki islem:<\/p>\n

make
\nmake install<\/p>\n

Make install asamasindan once sisteme postfix user ve postdrop groupunu acmaniz gerekmektedir. Bazi dagilimlarda bunlar acik halde gelmektedir.
\nBu komutlardan sonra postfix mysql ve sasl destekli olarak kurulmus olacaktir.
\nBu asamadan sonra \/etc\/postfix altindaki dosyalardan main.cf uzerinde degisiklikler ve eklemeler yapacagiz.
\n
\n#main.cf<\/p>\n

home_mailbox = Maildir\/
\nmail_spool_directory = \/var\/spool\/mail
\ntransport_maps=mysql:\/etc\/postfix\/transport.cf
\nvirtual_mailbox_maps=mysql:\/etc\/postfix\/mysql_virt.cf
\nvirtual_uid_maps=mysql:\/etc\/postfix\/uids.cf
\nvirtual_gid_maps=mysql:\/etc\/postfix\/gids.cf
\nvirtual_mailbox_base=\/
\nmydestination = $mydomain, $myhostname, $transport_maps
\nvirtual_maps =mysql:\/etc\/postfix\/virtual.cf<\/p>\n

#master.cf dosyasinda eger yoksa asagidaki satiri eklememiz gerekmektedir<\/p>\n

virtual unix - n n - - virtual
\n<\/code>
\nSimdi yeni yaratacagimiz dosyalarin iceriklerini sirayla yazalim:
\n
\n# transport.cf
\nuser=postfix
\npassword=whatever
\ndbname=maildb
\ntable=transport
\nselect_field=transport
\nwhere_field=domain
\nhosts=localhost<\/p>\n

# mysql_virt.cf
\nuser=postfix
\npassword= whatever
\ndbname=maildb
\ntable=users
\nselect_field=maildir
\nwhere_field=address
\nhosts=localhost<\/p>\n

# uids.cf
\nuser=postfix
\npassword=whatever
\ndbname=maildb
\ntable=users
\nselect_field=uid
\nwhere_field=address
\nhosts=localhost<\/p>\n

# gids.cf
\nuser=postfix
\npassword=whatever
\ndbname=maildb
\ntable=users
\nselect_field=gid
\nwhere_field=address
\nhosts=localhost<\/p>\n

# virtual.cf
\nuser=postfix
\npassword=whatever
\ndbname=maildb
\ntable=virtual
\nselect_field=goto
\nwhere_field=address
\nhosts=localhost
\n<\/code>
\nCourier Imap:<\/strong><\/p>\n

Courier imap programini hem imap hemde pop3 icin kullanabilirsiniz. Ayrica pop3s ve imaps te icinde gelmektedir.
\nCourier imap programini http:\/\/www.inter7.com\/courierimap\/ adresinden cekebilirsiniz.
\nCourier imap programinin ilginc bir ozelligi var root olarak compile edemiyorsunuz. Onun icin oncelikle herhangi bir normal kullanicinin ulasabilecegi bir dizine programi kopyalayin. Sonra normal bir kullanici olarak sisteme girip tar.gz dosyasini acin<\/p>\n

tar zxvf courier-imap.xxxxx.tgz<\/p>\n

bunu actiktan sonra sirasiyla<\/p>\n

.\/configure
\nmake
\nmake check<\/p>\n

buradan sonra root olmamiz gerekecektir,<\/p>\n

su root
\nmake install
\nmake install-configure<\/p>\n

Bunlari yaptigimizda courier imap \/usr\/lib\/courier-imap\/dizinine kurulacaktir
\nConfig dosyalari \/usr\/lib\/courier-imap\/etc dizininde yer almaktadir. Buradan config dosyalarinin 2 tanesinde degisiklik yapacagiz.
\n
\n#authmysqlrc dosyasinda
\nMYSQL_SERVER localhost #mysql server adresi<\/p>\n

MYSQL_USERNAME user
\nMYSQL_PASSWORD password<\/p>\n

MYSQL_SOCKET \/tmp\/mysql.sock #localhosttan calisiyorsaniz bu gerekli
\nMYSQL_DATABASE maildb
\nMYSQL_USER_TABLE users
\nMYSQL_CRYPT_PWFIELD crypt
\nMYSQL_CLEAR_PWFIELD clear
\nMYSQL_UID_FIELD uid
\nMYSQL_GID_FIELD gid
\nMYSQL_LOGIN_FIELD id
\nMYSQL_HOME_FIELD home
\nMYSQL_NAME_FIELD name
\nMYSQL_MAILDIR_FIELD maildir
\nMYSQL_WHERE_CLAUSE imapok=1 AND bool1=1 AND bool2=1
\n<\/code>
\nYukarda kullandigimiz MYSQL_MAILDIR_FIELD ile ilgili benim yasadigim bir sorun oldu. Program kullanicinin mail dizinini bulamiyordu. Eger boyle bir sorunla karsilasirsaniz mysql\u2019de users tablosuna yeni bir alan ekleyip ornegin adini courierhome yapin ve oraya Maildir\/ dizininin tam yolunu yazin. Or: \/var\/spool\/postfix\/virtual\/domain.com\/user\/Maildir\/ seklinde. Bu sekilde sorun cozulecektir.
\nBu ayarlardan sonra birde
\nAuthdaemonrc dosyasinda authmodulelist=”authmysql” yapmamiz gerekiyor. Eger baglantiyi pam ile yapmak isterseniz burada uthmodulelist=”authpam” kullanmaniz gerekecektir.<\/p>\n

Programi calistirmak icin \/usr\/lib\/courier-imap\/libexec teki<\/p>\n

imapd.rc start
\npop3d.rc start<\/p>\n

komutlarini vererek imap ve pop3u baslatmis olursunuz.<\/p>\n

Cyrus Sasl<\/strong><\/p>\n

Postfix’in smtp auth ozelligini aktif hale getirmek icin main.cf ye asagidakileri eklemeliyiz.
\n
\n#sasl
\nbroken_sasl_auth_clients=yes
\nsmtpd_sasl_auth_enable=yes
\nsmtpd_sasl_security_options = noanonymous
\nsmtpd_sasl_local_domain = $myhostname
\nsmtpd_sender_restrictions = reject_unknown_sender_domain
\nsmtpd_recipient_restrictions = permit_sasl_authenticated, check_relay_domains
\n<\/code>
\nayarlarini yapmamiz gerekecektir.
\nBundan sonra yapilmasi gereken \/usr\/local\/lib\/sasl\/smtpd.conf diye bir dosya olusturmak ve icine pwcheck_method: pam yazmak. Bu sekilde kurulumumuz tamamlandi.<\/p>\n

Not:<\/strong> Yeni linux dagitimlarinda genelde saslauthd gelmektedir. Bunu kullanabilmek icin smtpd.conf dosyasina:<\/p>\n

pwcheck_method: saslauthd
\nmech_list: plain login<\/p>\n

yazmalisiniz.<\/p>\n

Pam<\/strong><\/p>\n

Mysql ile arada baglanti kurulmasini saglayacak pam programi dagitimlarin icinde rpm olarak gelmektedir. Onu kurmaniz yeterlidir. Daha sonra \/etc\/pam.d icinde eger yok ise smtp isimli bir dosya olusturmamiz ve icerigini su sekilde ayarlamamiz gerekmektedir.<\/p>\n

auth optional pam_mysql.so user=postfix passwd=virtualdbmail db=maildb table=users usercolumn=address passwdcolumn=clear crypt=0
\naccount required pam_mysql.so user=postfix passwd=virtualdbmail db=maildb table=users usercolumn=address passwdcolumn=clear crypt=0<\/p>\n

Ustte yazilanlar auth satiri tek satir ve account satiri tek satir olmak uzere toplam 2 satira yazilmalidir.
\nPam ayarlamamizda burada bitimstir.<\/p>\n

Yukarida yapilan tum islemlerden sonra mail paketi kurulumumuz tamamlandi. Postfix icin \/etc\/init.d altina koyabileceginiz script \/etc\/postfix’in altinda vardir onu edit edip degisiklikler yapabilirsiniz. Sistemde actiginiz kullaniciya mail geldiginde domain user ve mail dizinleri otomatik olarak postfix tarafindan yaratilacaktir. Eger mail almada veya gondermede problemler oluyorsa \/var\/log\/mail dosyasini inceleyebilir ve hatanin kaynaklandigi yeri ogrenebilirsiniz.<\/p>\n","protected":false},"excerpt":{"rendered":"

Postfix Mail Server Kurulum Dokumani (Postfix+Mysql +Courier Imap+ SMTP Auth) Hazirlayan : Umut Besler 28.01.2003 Bu dokuman Postfix mail server uzerinde virtual domain olusturarak mail hizmeti vermeyi aciklayacaktir. Ayn\u0131 sistemi Debian \u00fczerinde \u00e7al\u0131\u015ft\u0131rmak i\u00e7in\u00a0Postfix Debian d\u00f6k\u00fcman\u0131mdan faydalanabilirsiniz. Oncelikle belirtmeliyimki bu program paketini kurmaya karar verdiyseniz biraz sabirli olmalisiniz. Cunku kurulum sirasinda veya kurulum sonrasi nerden […]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":16,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/pages\/45"}],"collection":[{"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":5,"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/pages\/45\/revisions"}],"predecessor-version":[{"id":56,"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/pages\/45\/revisions\/56"}],"up":[{"embeddable":true,"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/pages\/16"}],"wp:attachment":[{"href":"http:\/\/www.umutbesler.com\/wp-json\/wp\/v2\/media?parent=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}