ENKİ İnternet Servisleri Sunucusu 

( TRANSLATIONS/ÇEVİRİLER : TurkishEnglish )

© 2004 Mehmet Gençer, son yenileme: 12.05.2004, Mehmet Gencer, mgencer_at_cs.bilgi.edu.tr,
bu dökümanın son hali için: http://cs.bilgi.edu.tr/~mgencer/enki/

Bu yazılımı Genel Kamu Lisansı koşulları dahilinde kullanabilir ve dağıtabilirsiniz. Lütfen yazılımla birlikte gelen LISANS.html dökümanını okuyunuz. Bu yazılımın bir kopyasını edinmekle bu şartları kabul etmiş sayılacaksınız.

İçindekiler:

1. Giriş
    1.1 Enki nedir
    1.2 çalıştırmak için gerekli altyapı
    1.3 Teknik özellikler
   
2. Yönetici Kılavuzu
    2.1 Kurulum
    2.2 İlk çalıştırma ve konsol kullanımı
        2.2.1 Güvenli erişim için güvenlik sertifikası yaratma
        2.2.2 Eski sürümden yeni sürüme geçiş
    2.3 Kullanıcı hesapları
    2.4 Kullanıcı grupları
    2.5 Sunucuları çalıştırma ve durdurma
        2.5.1 e-posta sunucuları: SMTP ve POP3
        2.5.2 Web sunucusu
        2.5.3 Sohbet sunucusu
    2.6 Interaktif olmayan kullanım ve sisteme entegrasyon
    2.7 Konfigürasyon değiştirme
    2.8 Ateşduvarı(Firewall) ayarları
    2.9 Sistemi yedekleme ve taşıma
    2.10 Sanal Alanlar (Virtual Domains)
    2.11 Sorun giderme ve sistem günlüğü
    2.12 Windows sistemleri için notlar

3. Son Kullanıcı  Kılavuzu
    3.1 e-posta erişimi
    3.2 Sohbet sunucusu kullanımı
    3.3 Kullanıcı gruplarına abonelik işlemleri
    3.4 Şifrenizi değiştirme

4. Geliştirici Kılavuzu:
    4.1 Yeni dil desteği ekleme
    4.2 Farklı kullanıcı tabanlarına entegrasyon
    4.3 Kendi e-posta dağıtım bileşenlerinizi oluşturma


1. Giriş

1.1 Enki Nedir

Enki, küçük organizasyonlara uygun tasarlanmış, kurulumu ve kullanımı kolay, MSWindows ve GNU/Linux sistemleriyle uyumlu bir internet servisleri yazılımıdır.  Bu yazılımı kullanarak e-posta, web ve sohbet sunucuları çalıştırabilir, organizasyonunuzdakilere hem yerel ağ hem de internet üzerinden servis sağlayabilirsiniz.

Enki sunucusu yüksek performanslı ve gelişmiş sunucuları (sendmail, Apache, cyrus, mailman vb) çeşitli sebeplerden kullanamayan organizasyonlar için düşünülmüştür. Python programlama dili kullanılarak yazılmıştır.  Aynı işi gören çok sayıda kaliteli yazılım varken niye yeni bir program? Herşeyden önce varolan yazılımların çoğu ya GNU/Linux platformunda çalışan kurulum ve kullanımı tecrübe gerektiren yazılımlar, ya da MS Windows platformunda çalışan lisans ücreti yüksek ve güvenlik açıkları bol yazılımlar. Hemen hiçbirinin Türkçe arayüzü yok. Ayrıca farklı işlevleri olan yazılımları birbirine uyumlu olarak çalıştırmak hiç kolay değil. Bu yüzden Enki, küçük organizasyonların ücretsiz ve kaliteli Linux işletim sistemine geçişlerini cesaretlendirmek, tecrübe gerektirmeden temel iletişim servislerini kolayca verebilmelerine yardımcı olmak için tasarlandı.

Enki yazılım paketi içerisinde birçok bileşen bulunmaktadır. Bunlardan bir kısmı özgün programlardır. Bazı yetenekleri ise varolan programlar sisteme entegre edilerek kazandırılmıştır. Enki bileşenleri  şunlardır
    *web sunucusu
    *e-posta iletim sunucusu (SMTP) ve sanal alanlar(virtual domains) desteği
    *e-posta erişim sunucusu (POP3)
    *Tüm sunuculara SSL ile güvenli erişim (sadece GNU/Linux için)
    *e-posta erişimi için web arayüzü (NullWebmail yalnızca Linux platformunda çalışır)
    *kullanıcı grupları sistemi(e-posta ve sohbet sunucusu için)
    *sohbet ve abonelik işlemleri sunucusu (Telepot)
    *tüm sistemin kolayca yönetimini, kullanıcı ve e-posta grupları tanımlamayı sağlayan yönetim konsolu (enki.py)

Yazılımın ismi, Sümer uygarlığında bilimin ve suların tanrısı, büyük tanrılara karşı çıkıp Nuh'a tufan'ın gelişini bildiren ve gemi yapmayı öğreten Enki'den gelmektedir.

1.2 çalıştırmak için gerekli altyapı

Enki hem GNU/Linux hem de MS Windows sistemleri üzerinde çalışır. Sisteminizde Python programlama dilinin kurulu olması yeterlidir. O da hemen bürün Linux dağıtımlarında kuruludur. Windows'da çalıştıracaksanız, Python web sitesinden son sürümü indirip kurmalısınız.

e-posta ve web servislerinize ulaşılabilmesi için kayıtlı bir alan adınız olması ve bu alan adının sizin sunucunuza yönlendirilmesi gerekir. Türkiye'de .tr uzantılı alan adı almak için https://www.nic.tr/ adresine, uluslararası adresler için ticari sitelerden birine (örneğin EasyDNS) bakınız.

GNU/Linux platformunda güvenli erişim kullanabilmek için openssl ve stunnel4 yazılımlarının kurulu olması gerekir. Debian GNU/Linux kullanıyorsanız aşağıdaki komutlarla bunu yapabilirsiniz:

    apt-get install openssl
    apt-get install stunnel4

Enki'nin bileşenlerinden biri olan Thy HTTP sunucusu Debian GNU/Linux sistemi için derlenmiştir. Windows ve diğer platformlarda yüksek performanslı bu sunucu yerine daha basit Python tabanlı bir sunucu çalıştırılır.  Diğer sistemlerde bu sunucuyu kullanabilmek için web sitesinden indirip derleyin, sonra 'thy' dosyasini Enki kurulum dizinindeki bin dizini altına kopyalayın. Enki uyumlu programı tanıyıp otomatik olarak kullanacaktır.

Diğer bir bileşen olan ve e-postalara web sunucusu üzerinden erişim sağlayan NullWebmail programı da aynı şekilde Debian için derlenmiştir. Windows platformunda çalışmaz. Diğer Unix sistemlerinde çalıştırmak ister ve problem yaşarsanız programın kaynak kodunu web sitesinden aldıktan sonra derleyip var/wwwroot/cgi-bin altına webmail.cgi adıyla kopyalamanız gerekebilir.

1.3 Teknik özellikler

Enki e-posta ve web sunucuları internet standartlarıyla uyumludur.

Enki kullanıcı grupları sistemi, organizasyon şemasını kolayca hayata geçirmenize olanak veren basit ve güçlü bir sistemdir. Bu sistemde oluşturacağınız gruplar hem e-posta grupları hem de sohbet sunucusu grupları olarak işlev görür. Gruplara farklı koruma seviyeleri vererek erişimi kontrol edebilirsiniz.

Enki olabildiğince sistemden bağımsız çalışmak üzere tasarlanmıştır. Kurulum dizini dışında hiçbir işlem yapmaz, ve kendi kullanıcı tabanını kullanır. Bu durum yedekleme kolaylığı sağladığı gibi kurulum dizinini başka bir bilgisayara taşıyarak sunucuyu kaldığı yerden çalıştırmak mümkündür.

Programlarının altyapısı farklı dilleri destekleyebilmektedir. Bu sayede tüm bileşenlerin arayüzleri İngilizce ve diğer dillere kolayca tercüme edilebilir.

2. Yönetici Kılavuzu

Bu yönetici kılavuzu GNU/Linux sistemlerine yönelik hazırlanmıştır, ancak anlatılanların büyük çoğunluğu Windows sistemleri için de geçerlidir. Farklılıklar hakkında lütfen Windows sistemleri için notlar kısmını okuyun.

(Aşağıdaki bölümlerde # işareti Linux komut satırını ifade eder.)

2.1 Kurulum

Yazılımı kurmak için sistem yöneticisi(root) olmanız gerekmez. Ancak ağ servisleri açma yetkisi olan başka bir kullanıcı yoksa yönetici olarak ta bu işi yapabilirsiniz.
Programın son versiyonunu http://cs.bilgi.edu.tr/~mgencer/enki/ adresinden indirin. İndirdiğiniz sıkıştırılmış dosyayı sisteminizde isteğiniz biryere açın. örneğin:

	# cd /usr/local
# wget -nd http://cs.bilgi.edu.tr/~mgencer/enki/downloads/enki_0.92.tar.bz2
# bunzip2 enki_0.92.tar.bz2
# tar -xzf enki_0.92.tar

Bu komut /usr/local/enki_0.92 isimli bir dizin yaratacaktır. Enki bunun dışında hiçbir kurulum gerektirmez! Yalnızca ilk çalıştırmada bir yönetici şifresi belirlemeniz yeterlidir. Tabii sistemin kullanılabilmesi için kullanıcı hesapları ve kullanıcı grupları yaratmanız gerekecektir.

Aşağıdaki bölümlerde kurulum dizini olarak bu örnekteki sizin kullanılacaktır, siz başka bir yere kurarsanız örnekleri uygun biçimde uyarlamalısınız.

2.2 İlk çalıştırma ve konsol kullanımı

Enki'yi çalıştırmadan önce sisteminizde başka e-posta ve web sunucularının çalışmadığından emin olmalısınız. 'nmap' türü bir program kullanarak bunu kontrol edebilirsiniz.

Sistemi kontrol etmek için kontrol konsolunu kullanacaksınız. öncelikle konsolun kullanımı ile ilgili yardım mesajını okumanızı öneririm:

    #/usr/local/enki_0.92/enki.py yardim

Eğer yardım mesajını Türkçe olarak göremiyorsanız sisteminizin dil ayarları Türkçe değildir. Buna rağmen Enki'yi Türkçe kullanmak için aynı komutu bir çevre değişkeni ekleyerek çalıştırabilirsiniz:

    #LANG=tr /usr/local/enki_0.92/enki.py yardim

Kontrol konsolu, sistemin çalışması için gerekli bilgilerin çoğunu otomatik olarak bulacaktır. Ancak bunlardan özellikle birini değiştirmeniz gerekebilir: alan adı. Diyelim ki siz e-posta ve web servislerini 'ornek.org.tr' alanı için çalıştırmak istiyorsunuz. Bunun için ilk çalıştırmada aşağıdaki komutu verin:

      #ENKIDOMAIN=ornek.org.tr  /usr/local/enki_0.92/enki.py

Eğer aynı zamanda dili de değiştirmek isterseniz komutu şu şekilde kullanın

      #LANG=tr ENKIDOMAIN=ornek.org.tr  /usr/local/enki_0.92/enki.py

Cevap olarak şunu göreceksiniz:

        /usr/local/enki dizininde ilk kez Enki calistiracaksiniz,
        bu yuzden bazi ayarlar yapmalisiniz.
        Devam[Evet/hayir]:

Burada 'evet' ya da 'e' diyerek devam edin, ve bir şifre belirleyip iki kez girin:

        Simdi site yoneticisi (admin) hesabi icin sifre girin.
        Sifre :
        Sifre(tekrar) :
        Sifre kabul edildi

Bunu yaptıktan sonra konsolun çalismaya hazir oldugunu bildirir prompt'u görürsünüz:

        KURULUM TAMAMLANDI.

        Enki kontrol konsoluna hosgeldiniz.
        Versiyon:  enki-0.92
        Yardim almak icin ? yazip ENTER'a basin
        Enki >

Bu aşamadan sonra kullanıcı ve grup tanımlarını yapıp servisleri çalıştırmaya hazırsınız.
Eğer sistemin konfigürasyonunu incelemek istereseniz, konfigurasyon komutunu kullanın:

        Enki >konfigurasyon
	KONFIGURASYON:
	     MAILDELIVERY : <enkilib.EnkiMailDeliveryChain instance at 0x404f816c>
	     DOMAIN : ornek.org.tr
	     SMTPBINDADDR : ('', 25)
	     MAILDIR : %(prefix)s/var/mail/%(mailbox)s
	     MAXMAILSIZE : 262144
	     LOGLEVEL : 4
	     HTTPBINDADDR : ('', 80)
	     TELEPOTBINDADDR : ('', 6669)
             TELEPOTWEBACCOUNTS : 1
	     ACCOUNTBASE : <enkilib.utils.EnkiAccountBase instance at 0x404f830c>
	     PREFIX : /acikkanal
	     POP3BINDADDR : ('', 110)
	     RPCBINDADDR : ('127.0.0.1', 49152)

Şimdi Enki ana sunucusunu açmaya hazırsınız:

	Enki > ac
	Enki sunucusu baslatildi, proses numarasi:  3507

Bu komut sadece ana sunucuyu (rpc) başlatır. Henüz e-posta,web ve diğer sunuclarınız çalışmamaktadır. Sistemin durumunu görmek için 'durum' komutunu kullanabilirsiniz:

	Enki > durum
	rpc Service 0.92 : calisiyor - Process ID: 3507
	
SERVISLER:
	     pop3 Service 0.92 : calismiyor
	     http Service 0.92 : calismiyor
	     smtp Service 0.92 : calismiyor
	     telepot Service 0.92 : calismiyor

Daha sonra ana sunucuyu (ve çalışıyorsa diğer sunucuları da) kapatmak için 'kapat' demeniz yeterlidir:

	Enki > kapat
	3507 proses numarali Enki sunucusu kapatildi

Konsolda işiniz bittiğinde 'cikis' komutu ile Linux konsolu kapatabilirsiniz. Bu komut sunucuları kapatmaz, sadece konsolu kapatır:

	Enki > cikis
	Hoscakalin

2.2.1 Güvenli erişim için güvenlik sertifikası yaratma

Sunucularınıza güvenli erişim(SSL) sağlamak isterseniz önce bir sertifika yaratın:

	Enki > sertifika

programın sorduğu soruları yanıtladığınızda sertifikanız hazırdır. Ancak sertifikanın kullanılabilmesi için Enki konsolunu kapatıp yeniden başlatmanız gerekir.

2.2.2 Eski sürümden yeni sürüme geçiş

Daha önce kullandığınız bir Enki sürümü varsa, kullanıcı ve grup tanımlarınız, e-postalar ve web sitesi içeriğini yeni sürümde de kullanmak isteyeceksiniz. ENKIPREFIX ortam değişkenini kullanarak Enki'ye verileri başka bir yerden almasını ve depolamasını söyleyebilirsiniz. Diyelim ki eski sürümünüz /usr/local/enkieski altında kuruluydu ve /usr/local/enkiyeni altına yeni bir sürümü koydunuz, çalıştıracağınız komut:

    # ENKIPREFIX=/usr/local/enkieski /usr/local/enkiyeni/enki.py

Bu durumda eğer yeni sürümle gelen bazı CGI uygulamaları ve appletlet varsa bunlar sitenizde bulunmayacaktır. Bunları elle taşımanız gerekebilir. Yeni sürümle gelen UPGRADE.txt dökümanını okumanızda yarar var.

2.3 Kullanıcı hesapları

Sistem ilk çalıştırıldığında sadece Enki sistem yöneticisi (admin) için bir hesap bulunur. Kullanıcı hesaplarını listelemek için konsolda aşağıdaki komutu verin:

    	Enki > kullanicilar listele
    	admin ;ADI= 'Sistem yoneticisi'

Şimdi yeni bir kullanıcı tanımlayalım. Kullanıcının kodu 'deneme1' şifresi de '1234' olsun:

    	Enki > kullanicilar tanimla deneme1 1234 Deneme Kullanici No 1

e-posta sistemiyle uyumlu olması için kullanıcı kodlarında Türkçe harfleri kullanmayın!

Daha sonra bu kullanıcının şifresini ya da adını değiştirmek isterseniz, aynı komutu yeni bilgilerle vermeniz yeterlidir.
Daha sonra bu kullanıcıyı silmek isterseniz:

    	Enki > kullanicilar sil deneme1

Artık tanımlı kullanıcılarınız şifrelerini kullanarak e-posta ve sohbet sunucusundan yararlanabileceklerdir.

Sohbet sunucunuza gelen konuklar isterlerse bir hesap açabilir ve sizin izin verdiğiniz gruplara üye olabilirler. Bu konukların listesini de 'konuklar' komutuyla görebilirsiniz.

2.4 Kullanıcı grupları

Kullanıcı grupları hem e-posta ile hem de sohbet sunucusu üzerinde grup haberleşmesini kolaylaştırırlar

Grup yaratmak için kullanıcı yaratmaya benzer bir komut kullanacağız, grubun da bir şifresi olacaktır:

        Enki > gruplar tanimla grup1 1234 Grup No 1

Henüz grubun hiçbir üyesi yoktur. Bu gruba deneme1 kullanıcısını eklemek için:

        Enki > gruplar uyeekle grup1 deneme1

Daha sonra bu kullanıcıyı gruptan çıkartmak isterseniz:

        Enki > gruplar uyecikar grup1 deneme1

İsterseniz Enki kullanıcıları dışında e-posta adreslerini de bir gruba ekleyebilirsiniz:

        Enki > gruplar uyeekle grup1 ali@superonline.com

Tanımli grupların listesini görmek için:

            Enki >gruplar listele
            grup1 ; ADI= 'Grup No 1' ;KORUMA= 'protected' ;UYELIK= 'protected' ;members= [deneme1]

Burada KORUMA modu protected (korunaklı) olarak görülmektedir. Korunaklı gruplara bu sistemde tanımlı kullanıcılar (gruba üye olsalar da olmsalar da) e-posta gönderebilirler. Bu gruba (grup1@ornek.org.tr) gönderilen e-postalar bütün grup üyelerine ulaşır. Gruplar için 'korunaklı' modunun yanısıra 'acik' ('public') ve 'ozel'('private') koruma modları kullanılabilir. Bu modların özellikleri şöyledir:

Eğer grup tanımlama komutunda bir koruma modu belirtmezseniz, yukarıdaki örnekte olduğu gibi 'korunaklı' modu kullanılır. Şimdi 'açık' bir grup yaratalım:

        Enki > gruplar tanimla grup2 1234 acik Grup No 2

veya özel bir grup:

        Enki > gruplar tanimla grup3 1234 ozel Grup No 2

Artık tanımlı kullanıcılar isterlerse grup1 veya grup2'ye üye olarak kaydolabilirler (Telepot sohbet sunucusunu kullanarak). Ancak 'özel' bir grup olan grup3'e ancak kontrol konsolundan sistem yöneticisi üye ekleyebilir.

UYELIK koruma modu da benzer bir şekilde bu gruba kimlerin üye olabileceğini belirler.  'korumalı' uyelik modu sistemde tanımlı kullanıcıların isterlerse bu gruplara üye olabilmesine izin verir.  'ozel' ise sadece sistem yöneticisinin bu gruba üye ekleyebilmesine izin verir. 'acik' uyelik modu ise Telepot üzerinden kaydolan harici kullanıcıların da abone olmasına izin verir.

Burada iki modun uyumlu olması gerekmektedir. Örneğin KORUMA modu 'korunakli' bir grubun UYELIK modu 'acik' bile olsa sadece tanimli kullanicilar e-posta gönderebileceğinden Telepot üzerinden kaydolan harici kullanıcılar üye olabilseler bile e-posta gönderemez. Oysa KORUMA modu 'ozel' yapılırsa UYELIK modu 'acik' yapılırsa, bütün grup üyeleri e-posta gönderebilecektir. Her iki mod için de 'korunaklı' değeri sadece bu sistemde e-posta hesabı olan kullancılara izin verir.

2.5 Sunucuları çalıştırma ve durdurma

Kullanıcı ve grup hesaplarını yarattıktan sonra e-posta, web ve sohbet sunucularını çalıştırmaya hazırsınız. Eğer kontrol konsolundan çıktıysanız konsolu tekrar çalıştırın:

	#LANG=tr ENKIDOMAIN=ornek.org.tr  /usr/local/enki_0.92/enki.py
	Enki kontrol konsoluna hosgeldiniz.
        Versiyon:  enki-0.92
        Yardim almak icin ? yazip ENTER'a basin
        Enki >

Ana sunucu diğer sunuculardan önce açılmalıdır. 'durum' komutuyla kontrol edin ve açık değilse ana sunucuyu açın.
Daha önce aç komutunu ana sunucuyu(rpc) açmak için kullanmıştık. Bu komuta sunucu ismi verdiğimizde verilen sunucuyu ya da sunucuları açar, ancak bunu yapmak için size ilk çalıştırmada verdiğiniz sistem yöneticisi şifresini soracaktır. örneğin smtp(e-posta dağıtım) sunucusunu açmak için:

	Enki > ac smtp
	Site yonetici sifresini girin :
	Servis proses No: 3516

İstersek bir komutla birden fazla sunucuyu da çalıştırabiliriz:

	Enki > ac pop3 http telepot
	Servis proses No: 3518
	Servis proses No: 3519
	Servis proses No: 3521

Şimdir durum sorgulaması yaparak bu sunucuların durumunu inceleyebilirsiniz:

	Enki > durum
	rpc Service 0.92 : calisiyor - Process ID: 3515
	
SERVISLER:
	     pop3 Service 0.92 : calisiyor - Process ID:3518
	     http Service 0.92 : calisiyor - Process ID:3519
	     smtp Service 0.92 : calisiyor - Process ID:3516
	     telepot Service 0.92 : calisiyor - Process ID:3521

Eğer GNU/Linux kullanıyorsanız dilerseniz stunnel servisini çalıştırarak sunucularınıza güvenli erişim sağlayabilirsiniz(Bu komutu çalıştırmadan önce sertifika yaratmış olmalısınız. Bunun için lk çalıştırma bölümüne gözatın):

 	Enki > stunnel

Aşağıdaki bölümlerde bu dört sunucu ile ilgili açıklamaları bulacaksınız

2.5.1 e-posta sunucuları: SMTP ve POP3

Enki e-posta sunucuları standartlarla uyumludur, bu yüzden kullanıcılarınız yaygın programları (Mozilla, OutlookExpress gibi) kullanarak e-postalarına erişebilirler.

Bu sunucular e-postaları enki kurulum dizini altındaki var/mail altdizininde saklar. Kullanıcılar için bir kota sistemi bulunmamaktadır. Ancak siztemin kabul edeceği e-posta gönderilerinin boyutunu sınırlamak mümkündür. öntanımlı değer (256KB) yerine başka bir değer kullanmak isterseniz, kontrol konsolunu çalıştırırken ENKIMAXMAILSIZE çevre değişkenini kullanarak KB cinsinden bir sınır değeri verin.

Kullanıcı gruplarına gönderilen e-postaların bir kopyası tüm grup üyelerine iletildiği gibi, bir kopyası da var/mail/<grup-kodu> dizininde saklanacaktır. Grup tanımlarken verdiğiniz şifreyi kullanarak sanki normal bir kullanıcı gibi bu posta kutusuna erişebilir ve bu e-postaları silebilirsiniz.

2.5.2 Web sunucusu

Web dökümanları Enki kurulum dizini altında var/wwwroot altdizininde yeralır. İsterseniz bu dizindeki dökümanları değiştirerek kendi sitenizi düzenleyebilirsiniz. Eğer CGI uygulamalarınız varsa bunlar cgi-bin dizinine koyabilirsiniz.

2.5.3 Sohbet sunucusu

Telepot sohbet sunucusu kullanıcı gruplarına karşılık gelen sohbet odalarında, ya da özel sohbet imkanı sağlar. Bu sunucu -değiştirilmedikçe- 6669 no'lu port'tan hizmet vermektedir. Web sitenizin ana sayfasında bu sunucuya erişim için kullanabileceğinizi bir Java applet'ine link göreceksiniz. Bunun yerine Telnet programı kullanarak ta sunucuya erişmek mümkündür.

Telepot sistemde kayıtlı olmayan kullanıcıların da sohbet etmesine izin verir.

Telepot sadece bir sohbet sunucu değildir. Kayıtlı kullanıcılar bu sunucuya komutlar vererek şifrelerini değiştirebilir, kullanıcı gruplarına abone olabilir ya da abonelikten çıkabilirler. Sunucunun bir amacı da son kullanıcıları grafik arayüzler yerine karakter tabanlı arayüzleri kullanmaya teşvik etmektir:)

Kayıtlı kullanıcılara ek olarak dışarıdan ziyaret eden  kullanıcılar da sisteme e-posta adresleri ile konuk olarak kaydolduktan sonra Telepot tarından tanınırlar ve UYELIK modu 'acik' olan e-posta gruplarına abone olabilirler. Konuk kayıtlarının listesini kontrol konsolunda 'konuklar' komutuyla görebilirsiniz.

ENKITELEPOTWEBACCOUNTS ortam degişkenini kullanarak bu sunucunun konuk hesapları acmaya izin verip vermeyeceğini kontrol edebilitsiniz. 

2.6 İnteraktif olmayan kullanım ve sisteme entegrasyon

çoğu sistem yöneticisi Enki'nin Linux açılışında çalışmasını ve kapanırken sonlandırılmasını isteyecektir. Enki kontrol konsolunu interaktif olmayan modda kullanarak bunu gerçekleştirmek mümkündür. Bunu yapmak için konsolu başlatırken parametre olarak çalıştırmak istediğiniz Enki komutunu verebilirsiniz. Burada hatırlanması gereken bir ayrıntı ise şifre sormanın engellenmesidir. örneğin aşağıdaki komut tüm sunucuları başlatır:

	#LANG=tr ENKIDOMAIN=ornek.org.tr ENKIADMINPASS=1234 /usr/local/enki_0.92/enki.py ac rpc smtp pop3 http telepot

Benzer biçimde aşağıdaki komut ta sunucuları kapatır: 

	#LANG=tr ENKIDOMAIN=ornek.org.tr ENKIADMINPASS=1234 /usr/local/enki_0.92/enki.py kapat

Bu komutları Linux sisteminizin açılışına entegre edebilirsiniz.

2.7 Konfigürasyon değiştirme

Her seferinde kontrol konsolunu çalıştırırken çevresel değişkenleri vermek yerine bunları Enki kurulum dizini altındaki siteconfig.py dosyasına koyarak konfigürasyon değişikliklerini kalıcı hale getirebilirsiniz. Dosyanın içinde örnek değerleri bulacaksınız.

2.8 Ateşduvarı(Firewall) ayarları

Sisteminize dışarıdan erişilebilmesi için Enki'nin kullandığı portlara erişim izni vermelisiniz. e-posta servisleri için 25 ve 110, http servisi için 80, ve Telepot sohbet sunucusu için de 6669 no'lu portlar kullanılmaktadır.

2.9 Sistemi yedekleme ve taşıma

Enki taşınabilir bir sunucudur. Enki dizinini yedeklediğinizde herşeyi yedeklemiş olursunuz. Bu dizini başka bir bilgisayara taşıyıp kaldığı yerden çalıştırmaya devam edebilirsiniz. Yedekleme için standart bir Linux sisteminde bulunan tar programını kullanabilirsiniz.

2.10 Sanal Alanlar (Virtual Domains)

Eğer sunucunuza yönlendirilmiş birden fazla sanal alan bulunuyorsa farklı alanlarda kullanıcı hesapları açmanız gerekir.
Diyelim ki aynı sunucuya yönlendirilmiş ornek.org.tr ve ornek2.org.tr alanları olsun. Ayrıca Enki konfigürasyonunda DOMAIN olarak 'ornek.org.tr' tanımlanmış olsun. Bu durumda ikinci alanı desteklemek için yapmanız gereken şey, kullanıcı ya da grupları tanımlarken alan adı ile birlikte tanımlamaktır:

	Enki >kullanicilar tanimla test@ornek2.org.tr sifre Deneme hesabi

Bu kullanıcının Outlook ya da Mozilla'dan erişirken kullanıcı adı olarak eposta adresinin tamamını (test@ornek.org.tr) kullanması gerekecektir.

Bu kullanımı çok kolay bir yöntemdir, ancak dikkat ederseniz alan adı değişikliklerinde, mesela ornek2.org.tr alanında tanımlı hesapları ornek3.org.tr'ye taşımak için bu alanda tanımlı bütün hesapları yeniden tanımlamanız gerekecektir.

2.11 Sorun giderme ve sistem günlüğü

Umulmadık bir hatayla karşılaşırsanız sunucuların işlem kayıtlarını Enki'yi kurduğunuz dizin altında var/log altdizininde bulabilirsiniz.
Sorunları yakalamak için yapabileceğiniz bir başka işlem de Enki'yi  çalıştırırken aşağıdaki gibi bir komutla hata mesajlarını mesaj.txt dosyasına toplayarak incelemektir:

    ENKIADMINPASS=1234 ENKIDOMAIN=ornek.com.tr ./enki.py ac rpc smtp pop3 > mesaj.txt

2.12 Windows sistemleri için notlar

Kurulum için .zip uzantılı dosyayı indirin ve istediğiniz yere açın.

Konsolu çalıştırmak için enki.py dosyasını çift tıklayın. Sisteminizde Python kurulu ise program sorunsuz açılır ve bir DOS penceresi içinde komutlarınızı bekler. İlk çalıştırmada yukarıda Linux için açıklanan şekilde yönetici şifresini vermeniz gerekir. Sonra kullanıcı ve grup tanımlarınızı yapıp servisleri başlatabilirsiniz.

Windows sistemlerinde işlem yönetimi farklı olduğundan konsolu sürekli açık tutmanız gerekir! Eğer 'cikis' komutu ile konsolu kapatırsanız bütün servisler kapanacaktır.

Bir başka fark ortam değişkenleriyle ilgilidir.  Linux  örneğinde sunucuyu alan adını değiştirerek çalıştıran aşağıdaki komutu ele alalım:

	ENKIDOMAIN=ornek.org.tr  /usr/local/enki_0.92/enki.py

Windows'da aynı şeyi yapmak için iki seçeneğiniz var: (1)En kolayı Enki kurulum dizini altındaki siteconfig.py dosyasını değiştirerek alan adını bu dosyaya yazdıktan sonra enki.py dosyasını çift tıklayarak çalıştırabilirsiniz, ya da (2) bir DOS penceresinde önce 'set' komutunu aşağıdaki şekilde kullanıp:

	C:> set ENKIDOMAIN=ornek.org.tr  

 sonra ikinci bir komutla Enki'yi başlatabilirsiniz:

	C:>  python enki.py

Eğer kurulum sırasında sisteminizin ortam değişkenlerini düzenlemediyseniz, bu komuttaki 'python' yerine komple bir dizin vermeniz gerekebilir(aşağıdaki komutta Python'u nereye kurduysanız o dizini yazın):

	C:>  "c:\Program Files\Python\Python2.3"  enki.py

3. Son Kullanıcı  Kılavuzu

3.1 e-posta erişimi

Ofis kullanıcıları Outlook Express ya da Mozilla gibi programları kullanabilirler. Sadece web browser'ı olan kullanıcılar ise web sunucusu'nun ana sayfasında linki bulunan NullWebmail CGI uygulamasını kullanarak  e-postalarına ulaşabilirler.

3.2 Sohbet sunucusu kullanımı

Telepot sohbet sunucusu Enki ana sunucu ile sıkı sıkıya entegre bir sunucudur. Enki e-posta ssitemindeki gruplar bu sunucuda sohbet odaları olarak görülür. Sohbet odalarında veya bir kullanıcı ile özel sohbet yapmak mümkündir. Sunucuya  web ana sayfasındaki Java applet'i kullanılarak erişilebilir.

Bağlandıktan sonra sunucunun kullanımı ile ilgili yardım bilgisini görmek için ? yazıp Enter'a basın.

Komutlari büyük ya da küçük harfle yazabilirsiniz.

Sohbete başlamadan önce sunucuya kendinizi tanıtın:
    TANIT ali
Bu komutla sunucu ve diğer kullanıcılar sizi ANON_ali olarak adlandırır. 'ANON_' eki sunucuda hesabı olmayan, anonim bir kullanıcıyı ifade eder. Eğer sunucuda hesabınız varsa, şifrenizi de verin:
    TANIT ali sifrem
Artık bir sohbet odasında/grubunda ya da bir başka kullanıcıyla özel sohbet yapabilirsiniz. Odaların listesini görmek için ODALAR ya da GRUPLAR komutunu verin.
Bir odaya girmek için:
    SOHBET oda1
Bundan sonra yazdıklarınız odadaki herkese gider. özel sohbet için ise oda adı yerine kullanıcı adı vermelisiniz. Kullanıcıların listesini KIMVAR komutuyla görebilirsiniz. Odada iken bu komutu verirseniz odadakilerin listesini görürsünüz.

Odadan ya da özel sohbetten çıkmak için sadece nokta (.) koyun ve Enter'a basın.

Bu sunucuda bir hesabınız yoksa KAYDOL komutuyla bir konuk hesabı açıp izin verilen e-posta gruplarına üye olabilirsiniz. Bunun için e-posta adresinizi vermeniz yeterlidir.
    KAYDOL ali@superonline.net
    Kaydiniz basarili ise şifreniz e-postaniza gonderilir. Sifrenizi aldiktan sonra TANIT komutu ile girip e-posta gruplarina     abone olabilirsiniz. Bazı sunucular bu şekilde kayıtlara izin vermeyebilir.

3.3 Kullanıcı gruplarına abonelik işlemleri

Telepot sunucusu sohbet servislerinin yanısıra kayıtlı kullanıcıların e-posta gruplarına abone olma ya da abonelikten çıkmalarına da imkan verir.  Buradaki odalar aynı zamanda Enki e-posta sunucusunda tanımlı e-posta gruplarıdır. Eğer sunucuda hesabınız varsa, Telepot'u kullanarak bu gruplara abonelik işlemleri yapabilirsiniz. Bir e-posta grubuna gönderilen e-postalar tüm gruba gider. Siz de abone olduğunuz gruplara e-posta gönderebilirsiniz.

Grupların listesini görmek için Telepot sunucusuna şu komutu verin:
    GRUPLAR
Bir gruba abone olmak için:
    ABONEOL grup1
(NOT: Eğer bu özel bir grup ise isteğiniz reddedilecektir!)
Abone olduğunuz grupların listesini görmek için:
    ABONEDURUM
Abonelikten çıkmak için:
    ABONEOLMA grup1

3.4 Şifrenizi değiştirme

Bu işlemi de Telepot sunucusu üzerinden yapabilirsiniz. Eğer kendinizi tanıttıysanız şifrenizi değiştirebilirsiniz:
    TANIT ali <sifre>
    Kabul edildi
    SIFRE <yeni-sifre>
    Tamam

4. Geliştirici Kılavuzu

Enki nesne tabanlı bir tasarıma sahiptir. Eğer Python programlama diline aşina iseniz programda değişiklikler yapabilirsiniz. Programa yaptığınız eklentilerin başkaları için de yararı olacağını düşünüyorsanız lütfen bunları bana bildirin.  

4.1 Yeni dil desteği ekleme

Enki kurulum dizini altındaki i18n altdizini dil desteği için gerekli dosyaları içerir. Buradaki README.txt dökümanına gözatın.

4.2 Farklı kullanıcı tabanlarına entegrasyon

Enki taşınabilirlik ilkesi ile inşa edildiğinden kendi kullanıcı tabanına sahiptir. Ancak siz varolan kullanıcı tabanızını(örneğin Linux kullanıcıları ya da LDAP sistemi) bu sisteme entegre etmek isterseniz şunları yapmalısınız:
    (1)lib/enkilib/utils.py dosyasındaki EnkiAccountBase class'ına benzer bir class oluşturmalısınız. Bu class'ta kullanıcı için tutulan bilgiler uyarlanabilmesi düşünülerek oldukça kısıtlı tutulmuştur.
    (2)enki.py dosyasında ENKI_CONFIG["ACCOUNTBASE"] değeri olarak oluşturduğunuz class'ın bir instance'ını kullanmalısınız

4.3 Kendi e-posta dağıtım bileşenlerinizi oluşturma

Enki e-posta dağıtımı için birden fazla dağıtım mekanizmasının kullanımına izin verir. Eğer sizin farklı bir ihtiyacınız varsa kendi dağıtım mekanizmanızı oluşturabilirsiniz.

enki.py dosyasında e-posta dağıtımını düzenleyen tanımlama şöyledir:
    maildeliv=enkilib.EnkiMailDeliveryChain()
    maildeliv.appendHook(enkilib.utils.EnkiMailBase(ENKI_CONFIG))
    ENKI_CONFIG["MAILDELIVERY"]=maildeliv

Buradaki EnkiMailDeliveryChain'e birden fazla dağıtım mekanizmasını eklemek mümkündür.  lib/enkilib/__init__.py dosyasında tanımlanan EnkiMailDelivery class'ının kullanarak kendi dağıtım mekanizmanızı oluşturmanız mümkündür.