Bu bölümde basitçe Courier'ı çalışır hale getireceğiz. Courier ayarlarının ayrıntılarına sonraki bölümlerde değineceğiz.
Courier'ın kullanacağı tabloyu oluşturmadan önce, bir veritabanı ve bu veritabanı için bir MySQL kullanıcısı oluşturalım (Bunun için MySQL in metin tabanlı istemcisini kullanıyoruz. Dilerseniz phpmyadmin ya da benzeri bir grafiksel kullanıcı arabirimi de kullanabilirsiniz):
# mysql -u root -p
komutunu çalıştırdıktan sonra, MySQL root kullanıcısının
parolasını giriyoruz (root kullanıcısının parolasını hatırlamıyor
iseniz "dpkg-reconfigure
mysql-server-5.0" komutu ile kendinize yeni bir root parolası
belirleyebilirsiniz). Parolayı girdikten sonra eğer herşey yolunda gitmiş
ise şu cevabı almış olmalısınız:
# mysql -u root -p --default-character-set=utf8
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 5.0.51a-12 (Debian)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Satır başındaki mysql> sözcüğünden, şu anda MySQL'in komut satırı istemcisinde olduğumuzu anlıyoruz. MySQL'e mail isminde bir veritabanı yaratmak istediğimizi söyleyelim:
mysql> CREATE DATABASE mail CHARACTER SET utf8 COLLATE utf8_turkish_ci;
Query OK, 1 row affected (0.00 sec)
Ufak bir ayrıntı: CHARACTER SET ile bu veritabanı için kullanılacak karakter setini belirledik. Daha sonradan, kullanıcı isimlerini saklarken türkçe karakter problemi yaşamamak için utf8 seçtik. COLLATE ile belirttiğimiz dil, veritabanı işlemlerinde alfabetik sıralama işlemi yaparken temel alınacak dili belirler.
Yeni yarattığımız mail veritabanını kullanmak istediğimizi söyleyelim:
mysql> use mail;
Database changed
mail veritabanı üzerindeki bütün yetkileri mail isimli kullanıcıya
verelim:
mysql> grant all on mail.* to mail@localhost identified by 'parola' with grant option;
Query OK, 0 rows affected (0.00 sec)
MySQL ile son işimiz, kullanıcı bilgilerinin tutulacağı tabloyu
oluşturmak. Bu tabloyu oluşturmadan önce sistemimizden biraz bilgi
toplayalım.
İhtiyacımız olan bilgi sistemimizdeki mail kullanıcısının user id'si (uid) ve group id'si (gid). Bunları öğrenmek için /etc/passwd dosyasını herhangi bir editör ile açıp, mail: ile başlayan satırı bulup 3. ve 4. sütuna bakabiliriz:
...
mail:x:8:8:mail:/var/mail:/bin/sh
...
Bizim örneğimizde görüldüğü üzere
3. sütun uid=8
4. sütun gid=8.
(Genellikle mail kullanıcısı için uid=8, gid=8 dir).
Bulduğumuz bu değerleri aşağıda oluşturduğumuz tablonun uid ve gid sütunu için varsayılan değerler olarak belirleyeceğiz (sizin sisteminizde bu sayılar farklı ise, aşağıdaki SQL kodunu kendinize uygun biçimde değiştirin).
mysql> CREATE TABLE passwd (
id char(255) NOT NULL,
crypt char(128) NOT NULL,
clear char(128) NOT NULL,
name char(128) NOT NULL,
uid int(10) UNSIGNED DEFAULT '8' NOT NULL,
gid int(10) UNSIGNED DEFAULT '8' NOT NULL,
home char(255) NOT NULL,
maildir char(255) NOT NULL,
defaultdelivery char(255) NOT NULL,
quota char(255) NOT NULL,
options char(255) NOT NULL,
PRIMARY KEY (`id`)
);
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bu yarattığımız tablonun sütunları hakkında biraz açıklama yapalım:
id: Kullanıcının e-posta adresinin '@' işaretinden önceki kısmının
saklandığı sütundur (Örneğin e-posta adresi senem@magmalinux.org ise bu
sütun da senem tutulacak). Eğer birden
fazla alan adınız var ise ve her bir alan adı için ayrı hesaplar
oluşturacaksanız, bu sütun da e-posta adresini alan adı bilgisi ile
birlikte tutmanız gerekir (Örneğin e-posta adresleri lale@magmalinux.org ve lale@magmalinux.net şeklinde iki
ayrı hesabınız var ise, bu sütunda tutacağınız bilgi alan adını da
içermelidir. Böylelikle hesapların hangi alan adına ait olduğu ayırt
edilebilir).
crypt: Kullanıcı
parolasının şifrelenerek saklandığı sütundur (Parolalar bu sütunda
şifrelenmiş olarak saklanır. Dolayısıyla sistem yöneticisi, tablodaki
verileri incelerken parolanın ne olduğunu göremez. Ayrıca veritabanı
kötü niyetli insanların eline geçtiğinde, parolaların şifrelenerek
saklanması bize ekstra koruma sağlar).
clear: Kullanıcı
parolasının şifrelenmeden saklandığı sütundur. CRAM-MD5 gibi şifre doğrulama
yöntemleri tarafından bu sütuna ihtiyaç vardır (Parolalar bu sütunda
şifrelenmeden saklanır. Bu da sistem yöneticisinin parolaları
görebileceği anlamına gelir. Daha büyük tehlike, bu veritabanına yetkisiz
kişiler eriştiği zaman gelir. Bu sebeple bu sütuna boş değerler de
verebilirsiniz (Fakat boş değer verdiğiniz taktirde kullanıcı
doğrulaması için ileride bahsedeceğimiz CRAM-MD5 yöntemini
kullanamazsınız)).
name: Kullanıcının
gerçek ismi bu sütunda saklanır (Örneğin “Senem Kılıç” gibi).
uid: Kullanıcının
e-posta dizinine (Maildir) erişilirken kullanılacak kullanıcı id'si
(Yanlış olması durumunda, kullanıcı hesabına gelen e-postalara
erişemeyebilir). Bu sütunda yukarıda /etc/passwd dosyasından edindiğimiz mail
kullanıcısının id'sini kullanıyoruz.
gid: Kullanıcının
e-posta dizinine erişilirken kullanılacak grup id'si. Bu sütunda yukarıda
/etc/passwd dosyasından edindiğimiz
mail kullanıcısının grup id'sini kullanıyoruz.
home: Kullanıcının ev
dizininin yolu. Bir diğer deyişle, kullanıcının e-posta dizinini (Maildir)
barındıran dizinin yolu (Örneğin: /var/mail/magmalinux.com/senem/).
maildir: Kullanıcının
e-posta dizinin yolu (Örneğin: /var/mail/magmalinux.com/senem/Maildir). /
ile başlayan mutlak yol vermek yerine, ev dizinine göreceli yol da
belirtilebilir. Örneğin e-posta dizininiz Maildir isminde ve ev dizininin
içerisinde ise, bu sütuna sadece "Maildir" yazabilirsiniz. Ayrıca,
varsayılan değeri "Maildir" olduğundan, bu sütun boş bırakıldığında,
ev dizini içerisinde Maildir dizini aranır.
quota: E-posta hesabı
kota ayarları ile ilgili değerlerin tutulduğu sütundur. Doldurulması
zorunlu değildir. 'S' tüm e-postaların toplam boyutu sınırını, 'C' ise
bir e-posta dizininde en fazla kaç e-posta olabileceğini belirtir. Birden
fazla seçenek virgülle ayrılarak belirtilebilir. Örneğin, lale kullanıcısının bu sütununa 10000000S,1000C
girdiğinizde, bu kullanıcının kotası toplam 10.000.000 byte veya 1000 mail
ile sınırlanır.
options: Bazı
kullanıcıya özgü seçenekleri belirtmek için bu sütun kullanılır
(Örneğin, senem kullanıcısı için
imap kapatılmak isteniyorsa, senem
kullanıcısı kaydının bu sütununa disableimap=1 girilebilir.
Webmail desteği kapatılmak isteniyorsa disablewebmail=1 girilebilir).
Doldurulması zorunlu değildir. Birden fazla seçenek virgülle ayrılarak
belirtilebilir. Örneğin lale
kullanıcısı için disableimap=1,disablepop3=1,disablewebmail=1
Courier'i MySQL ile konuşturmak için öncelikle, Courier'e kullanıcı doğrulaması için authmysql'i kullanmasını söyleyelim. Bunun için /etc/courier/authdaemonrc dosyasındaki değişkenleri aşağıdaki gibi değiştirin:
authmodulelist="authmysql"
Şimdi de Courier'ın MySQL'e bağlanabilmesi için gereken bilgileri verelim. /etc/courier/authmysqlrc dosyasını açıp aşağıdaki değişkenleri uygun biçimde değiştirin:
MYSQL_SERVER localhost
MYSQL_USERNAME mail
MYSQL_PASSWORD parola
MYSQL_SOCKET /var/run/mysqld/mysqld.sock
MYSQL_PORT 3306
MYSQL_DATABASE mail
MYSQL_USER_TABLE passwd
MYSQL_CRYPT_PWFIELD crypt
MYSQL_CLEAR_PWFIELD clear
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD id
MYSQL_HOME_FIELD home
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_AUXOPTIONS_FIELD options
Dikkat ettiğiniz gibi, bu dosyadaki bilgiler, biraz önce yarattığımız
MySQL tablosu ile eşleşmeli
ki Courier ve MySQL birbirlerini duyabilsin.
MYSQL_SERVER: MySQL sunucunuzun
nerede olduğunu belirtir (MySQL sunucunuz bir başka bilgisayarda ise, o
bilgisayarın IP adresini ya da alan adını girin. Bizim örneğimizde MySQL
ve Courier sunucusu aynı bilgisayarda çalışıyor. Bu yüzden, MYSQL_SERVER değişkenine
localhost değerini
verdik).
MYSQL_USERNAME: Courier'ın
MySQL'e bağlanırken kullanacağı MySQL kullanıcısını belirtir.
Hatırlarsanız MySQL veritabanımızı oluşturduğumuzda Courier'ın
kullanması için bir de mail isminde
bir MySQL kullanıcısı yaratmıştık.
MYSQL_PASSWORD: Courier'ın
MySQL'e bağlanırken kullandığı kullanıcının parolasını belirtir.
MYSQL_SOCKET: MySQL socket
dosyasının yolunu belirtir (socket dosyaları, birbiri ile konuşan
süreçler tarafından kullanılır. Örneğin MySQL ile Courier birbiri ile
iletişim kurarken bu socket dosyaları üzerinden iletişim kurar). Genellikle
değeri /var/run/mysqld/mysqld.sock
dur ("ls
/var/run/mysqld/mysqld.sock" komutu ile doğrulayabilirsiniz).
MYSQL_PORT: MySQL sunucusunun dinlediği portu belirtir (Standart port 3306'dır).
MYSQL_DATABASE: Courier'ın
kullanacağı veritabanını belirtir. Bu bölümün başında mail isminde bir veritabanı
yarattığımızı hatırlayın.
MYSQL_USER_TABLE: Veritabanımız
içerisinde, Courier kullanıcılarının bilgilerinin bulunduğu tablo. passwd isminde bir tablo yarattığımızı
hatırlayın.
MYSQL_CRYPT_PWFIELD: Kullanıcı
parolarının şifrelenerek saklandığı sütunu belirtir. Yukarıda passwd tablosundaki crypt sütununu hatırlayın.
MYSQL_CLEAR_PWFIELD: Kullanıcı
parolalarının şifrelenmeden saklandığı sütunu belirtir.
MYSQL_UID_FIELD: UID değerinin
saklandığı sütunu belirtir.
MYSQL_GID_FIELD: GID
değerinin saklandığı sütunu belirtir.
MYSQL_LOGIN_FIELD: Kullanıcı
adının (id) saklandığı sütunu belirtir. Bizim örneğimizdeki değeri
id dir.
MYSQL_HOME_FIELD: Kullanıcının
ev dizini yolunun saklandığı sütunu belirtir. Yani kullanıcı ev dizininin
yolu, passwd tablosunda hangi sütunda tutuluyor ise buraya o sütunu
yazmalısınız (Bizim örneğimizde home. passwd tablomuzu oluşturduğumuz SQL koduna
bakınız).
MYSQL_NAME_FIELD: Kullanıcının
gerçek isminin saklandığı sütunu belirtir.
MYSQL_MAILDIR_FIELD: Kullanıcı
e-posta dizininin saklandığı sütunu belirtir.
MYSQL_QUOTA_FIELD: Kullanıcı
kotasının tanımlandığı sütunu belirtir.
MYSQL_AUXOPTIONS_FIELD:
Kullanıcıya özgü diğer seçeneklerin tanımlandığı sütunu belirtir.
Tekrar dikkat,
authmysqlrc dosyasına girdiğiniz
değerler önceki bölümde oluşturduğunuz passwd tablosu ile eşleşmeli ki, Courier
MySQL'e bağlanabilsin. Aksi halde kullanıcılarınız giriş yapamayacaklar
veya kullanıcıların doğrulanması ile ilgili bütün işlemler hata ile
sonuçlanacaktır.
İlk adımımız Courier'e kendi alan adlarımızın neler olduğunu
söylemek olacak. Tek bir alan adımızın olması durumu ile birden fazla alan
adımızın olması durumunda yapacağımız ayarlar biraz farklılık
gösterecek. Bu yüzden bu konuları farklı bölümlerde ele aldık.
Tek alan adımız olduğu durumda, MySQL passwd tablomuzun id sütununda
alan adı bilgisini tutmamız gerekli değil. Bu durumda yapacağımız tek
ayar, Courier'a kullanıcı bilgileri sorgulaması yaparken, id sütununda alan adı bilgisinin
tutulmadığını söylemek olacak.
/etc/courier/locals dosyasını açıyoruz (yoksa oluşturuyoruz) ve alan adımızı bu dosya içerisine yazıyoruz. Courier kullanıcı tablosuna bakarken, locals dosyasında yazan alan adlarını e-posta adresinden atar. Yani magmalinux.org alan adının locals dosyanızda yazdığını düşünelim. senem@magmalinux.org kullanıcısı araştırılırken, Courier @magmalinux.org kısmını atar (Bu yüzden kullanıcı tablosunun id sütununda @magmalinux.org u tutmayız). Örnek bir locals dosyasını inceleyelim:
localhost
magmalinux.org /etc/courier/locals Dosyasınnın içine yazdıklarımızın aynı şekilde /etc/mailname dosyasınada yazmalıyız.
Tek alan adımız (magmalinux.org) olduğu halde, locals dosyasına localhost alan adını da ekledik. Böylelikle Courier'ın yüklü olduğu bilgisayar içerisinde e-posta gönderildiğinde, alan adı olarak localhost'u da kullanabiliriz. Yani Courier'ın yüklü olduğu bilgisayar dışından senem@magmalinux.org şeklinde ulaştığımız hesaba, Courier'ın yüklü olduğu bilgisayardan ulaşırken senem@localhost adresini de kullanabiliriz.
Birden fazla alan adımız olduğu durumda yapılandırmamız biraz
değişiklik gösterebilir.
Eğer bütün alan adlarımıza ait hesaplar aynı olacaksa,
yaptığımız ayarlama, tek alan adı için yaptığımız ayarlamaya oldukça
benzer olacak. Yani senem@magmalinux.org ve senem@magmalinux.net aynı hesap
olacaksa, bir önceki bölümde olduğu gibi alan adlarını /etc/courier/locals dosyasında
belirtiyoruz. Örnek bir locals
dosyası şu şekilde olabilir:
localhost
magmalinux.org
magmalinux.net
Yukarıdaki gibi bir locals dosyası olduğu durumda, Courier, senem@magmalinux.org ve senem@magmalinux.net gibi
kullanıcıları, kullanıcı tablosunda (passwd) aramadan önce @magmalinux.org ve @magmalinux.net kısımlarını atar. Bu
yüzden bu iki e-posta adresine gelen e-postalar, kullanıcı tablosundaki
senem kullanıcısına gider. Bu
durumda kullanıcı tablosunun id
sütununda alan adı bilgisini tutmayız. Kısaca bir alan adı, locals dosyasında yazıyorsa, bu alan
adına ait kullanıcılar araştırılırken, e-posta adresinin @alanadi kısmı atılır.
Eğer alan adlarımızdaki hesaplarımız
farklı olacaksa, yani
senem@magmalinux.org ile senem@magmalinux.net birbirinden
tamamıyla farklı iki hesap olacak ise; bu iki alan adımızı locals dosyasına yazmak yerine /etc/courier/hosteddomains dosyasına
yazacağız (Dikkat! Bu durumda ortada hiç locals dosyamızın bulunmaması lazım).
Courier, hosteddomains dosyasında
yazan alan adları için kullanıcı tablosuna bakarken, e-posta adresinin alan
adı bilgisini olduğu gibi bırakır. Böylelikle kullanıcı tablosunda senem@magmalinux.org ve senem@magmalinux.net gibi iki ayrı
kullanıcı saklayabiliriz.
/etc/courier/hosteddomains dosyası
oluşturmadan önce dikkat etmemiz gereken şey, bazı linux dağıtımlarında
bunun bir dosya yerine dizin olduğudur. Eğer sisteminizde /etc/courier/hosteddomains bir dizin ise, bu
dizin altında herhangi bir isimde bir dosya yaratıyoruz (Bu dizin altında
birden fazla dosyaya sahip olabiliriz. Courier, hosteddomains dizini altındaki bütün
dosyaları birleştirip, sanki hosteddomains dizini tek bir dosyaymış
gibi davranacak). Örnek bir hosteddomains dosyası (ya da hosteddomains dizin ise hosteddomains/alanadlarim.txt dosyası) şu
şekilde olabilir:
magmalinux.org
magmalinux.net
/etc/courier/hosteddomains dosyasında joker
karakter de kullanabiliriz. Örneğin magmalinux.com altındaki tüm alt alan adlarına ait
hesaplarımız var ise /etc/courier/hosteddomains dosyamız şu şekilde
olacak:
magmalinux.org
magmalinux.net
magmalinux.com
.magmalinux.com
Dikkat!!! Bu dosya da ".magmalinux.com" sadece tüm alt alan adlarını kapsar (blog.magmalinux.com, forum.magmalinux.com gibi), fakat magmalinux.com alan adının kendisini kapsamaz. Bu yüzden hem "magmalinux.com" u hem de ".magmalinux.com" u yazdık.
Şimdi /etc/courier/hosteddomains dosyasında yaptığımız bu değişikliğin geçerli olması için kabukta:
# makehosteddomains
komutunu çalıştıralım. /etc/courier/hosteddomains dosyasında
yaptığımız her değişiklikten sonra değişikliklerin geçerli olması
için bu komutu çalıştırmamız gerek. Bunun için Courier'ı yeniden
başlatmamıza gerek
yok.
Varsayılan Alan Adı:/etc/courier/locals ya da /etc/courier/hosteddomains dosyasında
belirttiğimiz alan adlarından hangisi bizim varsayılan alan
adımız ise, bu alan adını /etc/courier/defaultdomain dosyasına
giriyoruz. Örneğin:
magmalinux.org
SMTP Sunucusu Alan Adı Ayarları: SMTP sunucumuzun hangi alan adları için gelen e-postaları kabul edeceğini belirtelim. Courier'a bu alan adlarını söylemek için /etc/courier/esmtpacceptmailfor dosyasını kullanır. Bazı Linux dağıtımlarında esmtpacceptmailfor dosyası yerine esmtpacceptmailfor.dir dizini vardır. Eğer sizin sisteminizde esmtpacceptmailfor.dir dizini var ise, Courier, bu dizin altındaki her dosyayı birleştirip esmtpacceptmailfor.dir dizinine tek dosyaymış gibi davranacak. Örnek bir /etc/courier/esmtpacceptmailfor dosyasına bakalım (ya da örneğin esmtpacceptmailfor.dir/kabuledilenler.txt):
localhost
magmalinux.org
magmalinux.net
magmalinux.com
.magmalinux.com
cerenbilgisayar.com.tr
Şimdi yaptığımız değişikliğin geçerli olması için:
# makeacceptmailfor
komutunu çalıştırıyoruz.
SMTP HELO komutu: E-posta
gönderdiğiniz bazı SMTP sunucuları spamlere karşı savunma için, SMTP
iletişim kurallarında tanımlı HELO komutunda, sizden tam tanımlanmış
alan adı bilgisi isteyebilirler (Örneğin magmalinux.org ya da mail.magmalinux.org gibi).
Varsayılan olarak, Courier, HELO komutuyla birlikte sizin sadece konak
bilginizi (hostname) gönderir (Örneğin "mail". Konak bilginizin ne
olduğunuzu merak ediyorsanız, "hostname" komutunu kullanın). Eğer konak bilginiz, alan
adını içermiyorsa ("mail" örneğinde olduğu gibi), Courier'a HELO komutu
ile birlikte hangi tam tanımlı alan adı bilgisini kullanması gerektiğini
söyleyebilirsiniz. Bunun için /etc/courier/ dizini altında esmtphelo isminde bir dosya oluşturun ve
içeriğini alan adınıza uygun bir biçimde doldurun. Örnek bir esmtphelo dosyası şu şekilde olabilir:
magmalinux.org
Bir E-postanın Maksimum Boyutu: Mail
sunucusuna gelen veya giden bir e-postanın maksimum boyutunu belirlemek için
/etc/courier/sizelimit
dosyasını açıp (yoksa
oluşturup), içindeki değeri 0
yapıyoruz.
Yanlış Başlık Bilgisine Sahip E-postaları Kabul Etme: Bazı e-posta
istemcilerinin ürettiği yanlış başlıklardan ötürü, size CORRUPTED
MESSAGE başlıklı e-postalar geliyor ise, bu e-postaları kabul etmek için,
/etc/courier/bofh dosyasını açıp
(yoksa oluşturup), içinde BOFHBADMIME değişkenini accept olarak ayarlıyoruz:
opt BOFHBADMIME=accept
Bu yapılandırma dosyaları hakkında daha ayrıntılı bilgi için “man 8 courier” komutunu
kabukta çalıştırın.
SPAM ve DNS ayarlarındaki SPF Kaydı:
Bazı SMTP sunucuları kendisine gelen e-postaları kabul ederken,
e-postanın spam olup olmadığını anlamak için DNS ayarlarındaki SPF
kayıtlarına bakabilirler. SPF kaydının nasıl yapılacağı bu belgenin
sınırları dışındadır, fakat basitçe magmalinux.org bölge dosyasına,
aşağıdaki kaydı eklemeniz gerekir:
magmalinux.org. IN TXT "v=spf1 a mx include:aspmx.googlemail.com ?all"
Bu kaydın ayrıntıları için bakınız DNS (BIND9).
Kullanıcımızın ev dizinini yaratalım (Bu dizinin yolunu kullanıcı
bilgilerinin tutulduğu tabloda home
sütununa gireceğiz):
# mkdir /var/mail/senem
Yarattığımız ev dizini içerisine bir e-posta dizini oluşturalım
(Dikkat! Bu dizini oluştururken maildirmake aracını kullandığımıza
dikkat edin. Bu dizinin yolunu kullanıcı bilgilerinin tutulduğu tabloda
maildir sütununa gireceğiz):
# maildirmake /var/mail/senem/MaildirYarattığımız bu dizinlerin sahibini ve grubunu mail yapalım (Eğer root kullanıcısı iken kullanıcı dizinlerini yaratmışsanız, her kullanıcı eklediğinizde bu işlemi yapmalısınız.):
# chown mail:mail -R /var/mail/senem
Dizinlerimizi yarattığımız bu kullanıcıyı MySQL'deki kullanıcı
tablomuza (passwd) ekleyelim (Bu işlemi kabukta yapmak yerine phpmyadmin gibi grafiksel
kullanıcı arayüzü tercih etmeniz işinizi kolaylaştıracaktır):
# mysql -u mail -p --default-character-set=utf8
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.0.51a-6 (Debian)
mysql> use mail;
Database changed
mysql> INSERT INTO `passwd` (
`id`,
`crypt`,
`clear`,
`name`,
`uid`,
`gid`,
`home`,
`maildir`,
`defaultdelivery`,
`quota`,
`options`
)
VALUES (
'senem',
ENCRYPT( 'deneme' ),
'',
'Senem Kılıç',
'8',
'8',
'/var/mail/senem',
'', '', '', ''
);
Query OK, 1 row affected (0.05 sec)
mysql> quit;
Dikkat ettiyseniz kullanıcı adını alan adı bilgisi olmadan sakladık
(id sütununda senem@magmalinux.org yerine senem kullandık). Ayrıca maildir sütununu da boş bıraktık (Courier
varsayılan olarak ev dizini içerisinde Maildir isminde bir dizin arar. Biz de
dizinlerimizi bu şekilde oluşturduğumuz için maildir sütununu doldurmayı gerekli
görmedik).
Kullanıcıyı passwd tablosuna ekledikten sonra test edelim:
# authtest senem
Authentication succeeded.
Authenticated: senem (uid 8, gid 8)
Home Directory: /var/mail/senem
Maildir: (none)
Quota: (none)
Encrypted Password: 1Yw2QG6pz9Kic
Cleartext Password: (none)
Options: (none)
Yukarıdaki gibi bir çıktı alıyorsak herşey yolunda demektir (Değil ise Sorunun Kaynağını Tespit Etmek başlığına bakınız).
Öncelikle /var/mail dizini altında tüm kullanıcılarımızın ev dizinlerini ve e-posta dizinlerini içerecek alan adımıza ait bir klasör oluşturalım:
# mkdir /var/mail/magmalinux.org
Her bir alan adındaki hesap ayrı olarak çalışacaksa; diğer alan
adlarınız için de dizin oluşturmanız düzen açısından önemlidir.
Diğer alan adlarınız için de /var/mail altında dizin oluşturun.
Şimdi magmalinux.org alan adı
için kullanıcı yaratalım.
Kullanıcımızın ev dizinini yaratalım:
# mkdir /var/mail/magmalinux.org/senem
Ev dizinimiz içerisinde e-posta dizini oluşturalım:
# maildirmake /var/mail/magmalinux.org/senem/Maildir
Yarattığımız bu dizinlerin sahibini ve grubunu mail yapalım (Eğer root kullanıcısı iken kullanıcı dizinlerini yaratmışsanız, her kullanıcı eklediğinizde bu işlemi yapmalısınız):
# chown mail:mail -R /var/mail/magmalinux.org
Dizinlerimizi yarattığımız bu kullanıcıyı MySQL'deki kullanıcı tablomuza (passwd) ekleyelim (Bu işlemi kabukta yapmak yerine phpmyadmin gibi grafiksel kullanıcı arayüzü tercih etmeniz işinizi kolaylaştıracaktır):
# mysql -u mail -p --default-character-set=utf8
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 497
Server version: 5.0.51a-6 (Debian)
mysql> use mail;
Database changed
mysql> INSERT INTO `passwd` (
`id`,
`crypt`,
`clear`,
`name`,
`uid`,
`gid`,
`home`,
`maildir`,
`defaultdelivery`,
`quota`,
`options`
)
VALUES (
'senem@magmalinux.org',
ENCRYPT( 'deneme' ),
'',
'Senem Kılıç',
'8',
'8',
'/var/mail/magmalinux.org/senem',
'', '', '', ''
);
Query OK, 1 row affected (0.05 sec)
mysql> quit;
# authtest senem@magmalinux.com
Authentication succeeded.
Authenticated: senem@magmalinux.com (uid 8, gid 8)
Home Directory: /var/mail/magmalinux.org/senem
Maildir: (none)
Quota: (none)
Encrypted Password: b3bWeLU8f29Q2
Cleartext Password: (none)
Options: (none)
Yukarıdaki gibi bir çıktı alırsak, herşey yolunda demektir (Değil ise
Sorunun Kaynağını Tespit Etmek başlığına bakınız).
ESMTP servisini Courier açıldığında otomatik başlatmak için /etc/courier/esmtpd dosyasının sonundaki ESMTPDSTART değişkeninin değerini YES yapıyoruz. Yani:
ESMTPDSTART=YES
Kullanıcılarımızı e-mail gönderirken doğrulamak için /etc/courier/esmtpd dosyasında aşağıdaki değişiklikleri yapıyoruz:
ESMTPAUTH="LOGIN PLAIN CRAM-MD5 CRAM-SHA1"
POP3 servisini Courier açıldığında otomatik başlatmak için ise /etc/courier/pop3d dosyasının sonundaki POP3DSTART değişkeninin değerini YES yapıyoruz:
POP3DSTART=YES
Bu işlemden sonra Courier'ı yeniden başlatalım:
# /etc/init.d/courier-mta restart
# /etc/init.d/courier-pop restart
| Önceki | Üst Ana Başlık | Sonraki |
| Nasıl Çalışır? |
Test Etmek |