E-posta & SMTP Sunucu

    Maildir ve mbox Farkı: Hangisini Seçmeli

    Mail sunucusunun mesajları diskte nasıl sakladığı ve iki biçim arasındaki pratik farklar.

    11 dk okuma Güncellendi: 25 Ağustos 2026

    Bir mail sunucusu kurarken karşınıza çıkan ilk ciddi karar, mesajların diske nasıl yazılacağıdır: Maildir mi, mbox mu? Kurulum rehberlerinin çoğu bu satırı tek cümleyle geçer, oysa seçiminiz ileride yedekleme sürelerinizi, eşzamanlı erişimde yaşayacağınız kilitlenmeleri, kota hesabının doğruluğunu ve hatta taşıma gününüzün kaç saat süreceğini belirler. Yanlış tarafta kalan sistem yöneticileri genellikle bunu ilk kez bir kullanıcı "gelen kutum açılmıyor" dediğinde ya da 40 GB'lık tek bir dosyayı her gece yedeklemeye çalışırken fark eder.

    Bu yazıda Maildir ve mbox farkını dosya düzeyinde açıklayacağım: her biri diskte nasıl görünür, mesaj eklerken ve silerken ne yapar, kilitleme (locking) sorunları nereden çıkar, rsync ile yedeklemede neden gece ve gündüz kadar fark yaratırlar. Ardından Postfix ve Dovecot tarafındaki gerçek yapılandırma satırlarını, mbox'tan Maildir'e geçiş komutlarını ve hangi senaryoda hangisini seçmeniz gerektiğini net bir karar tablosuyla vereceğim.

    mbox: Tek Dosyada Bütün Kutu#

    mbox, Unix'in en eski posta biçimidir ve mantığı kadar basittir: bir klasördeki bütün mesajlar tek bir düz metin dosyasına arka arkaya yazılır. Her mesajın başına From ile başlayan ayırıcı bir satır konur ve okuyucu program mesajları bu satırlara bakarak birbirinden ayırır. Klasik yerleşimde gelen kutunuz /var/mail/kullanici ya da /var/spool/mail/kullanici yolunda tek bir dosyadır.

    # mbox biçiminde bir gelen kutusuna bakmak
    ls -lh /var/mail/
    # -rw-rw---- 1 kullanici mail 412M Aug 25 09:14 kullanici
    
    # Dosyanın içinde mesaj sınırları böyle görünür
    head -5 /var/mail/kullanici
    # From [email protected]  Mon Aug 25 09:02:11 2026
    # Return-Path: <[email protected]>
    # Received: from mail.ornek.com (mail.ornek.com [185.12.34.56])
    # Date: Mon, 25 Aug 2026 09:02:10 +0300
    # Subject: Teklif hakkinda
    

    Bu tasarımın iki doğal sonucu var. Birincisi, mesaj gövdesinde satır başında From geçerse ayırıcıyla karışır; bu yüzden yazıcı programlar o satırların önüne > koyarak kaçış yapar (mboxrd, mboxcl gibi lehçe farkları buradan doğar). İkincisi ve daha önemlisi, dosyanın ortasından bir mesaj silmek mümkün değildir: silme işlemi aslında tüm dosyayı yeniden yazmak demektir. 400 MB'lık bir kutudan tek mesaj sildiğinizde sunucu 400 MB'ı okuyup 400 MB'ı geri yazar.

    Maildir: Her Mesaj Ayrı Bir Dosya#

    Maildir, mbox'un kilitlenme sorunlarını çözmek için tasarlandı ve bugün mail sunucularının varsayılan tercihi hâline geldi. Bir Maildir kutusu, içinde üç zorunlu alt dizin barındıran bir klasördür: tmp/, new/ ve cur/. Teslimat yapan program mesajı önce tmp/ içine yazar, yazma bittikten sonra new/ dizinine atomik olarak taşır (rename işlemi). Kullanıcı mesajı okuyunca dosya cur/ dizinine geçer ve dosya adına bayraklar eklenir.

    # Maildir yapısı
    tree -L 2 /home/kullanici/Maildir | head -12
    # /home/kullanici/Maildir
    # |-- cur
    # |-- new
    # |-- tmp
    # |-- .Sent
    # |-- .Trash
    # `-- maildirsize
    
    # cur/ içindeki bir dosya adı
    ls /home/kullanici/Maildir/cur/ | head -2
    # 1756108931.M204817P3391.mail.firmaniz.com:2,S
    # 1756108944.M771203P3392.mail.firmaniz.com:2,RS
    

    Dosya adının sonundaki :2, işaretinden sonraki harfler mesajın durumunu tutar ve bunları bilmek hata ayıklarken çok işe yarar:

    BayrakAnlamı
    SSeen — okunmuş
    RReplied — yanıtlanmış
    FFlagged — bayraklanmış / önemli
    DDraft — taslak
    TTrashed — silinmiş olarak işaretli
    PPassed — iletilmiş

    Alt klasörler Maildir++ sözleşmesine göre nokta ile başlar: .Sent, .Trash, .Arsiv.2025 gibi. maildirsize dosyası ise kota hesabını hızlandırmak için kullanılan bir sayaçtır. Bu yapının en güzel tarafı, tek bir mesajı silmenin tek bir unlink() çağrısı olmasıdır — kutunun geri kalanına dokunulmaz.

    Kilitlenme: İki Biçimi Ayıran Asıl Nokta#

    mbox ile yaşanan klasik felaket senaryosu şudur: kullanıcı Outlook'tan IMAP ile mesaj silerken tam o anda sunucuya yeni bir mail teslim edilir. İki süreç aynı dosyaya yazmak ister ve dosyayı kilitlemek zorundadır. Kilitleme mekanizmaları (fcntl, flock, nokta dosyası) farklı programlar tarafından farklı yorumlandığı için bazen ikisi de kilidi aldığını sanır. Sonuç, ortasından bozulmuş bir mbox dosyası ve kullanıcının "gelen kutum kayboldu" mesajıdır.

    Maildir bu sorunu tasarım gereği ortadan kaldırır. Teslimat sırasında kilit gerekmez, çünkü her mesaj kendi dosyasıdır ve dosya adı çakışmayacak biçimde (zaman damgası + süreç kimliği + makine adı) üretilir. Okuma sırasında da kilit gerekmez. Bu yüzden Maildir, NFS gibi ağ dosya sistemleri üzerinde çalışırken mbox'a göre kıyaslanamayacak kadar güvenlidir; mbox'u NFS üzerinde çalıştırmak neredeyse her zaman er ya da geç veri kaybıyla sonuçlanır.

    Bunun bedeli inode tüketimidir. 200.000 mesajlık bir Maildir kutusu diskte 200.000 dosya demektir; disk boş görünürken inode'ların tükenmesi ve "no space left on device" hatası almanız mümkündür. Kontrol etmek kolaydır:

    # Blok kullanımı normal ama inode dolmuş olabilir
    df -h /home
    df -i /home
    # Filesystem      Inodes   IUsed   IFree IUse% Mounted on
    # /dev/sda2      6553600 6210443  343157   95% /home
    

    Yedekleme, Kota ve Bakım Davranışı#

    Günlük işletmede iki biçim arasındaki farkı en çok yedekleme sırasında hissedersiniz. rsync değişen dosyaları aktarır; mbox'ta tek bir dosya olduğu için o dosyaya düşen tek bir yeni mail bile dosyanın tamamının "değişti" sayılmasına yol açar. 40 GB'lık bir mbox kutusunu her gece yeniden aktarmak gerçek bir maliyettir. Maildir'de ise sadece o gün eklenen birkaç yüz küçük dosya taşınır.

    # Maildir yedeği: yalnızca yeni dosyalar aktarılır
    rsync -aH --delete /home/kullanici/Maildir/ /yedek/kullanici/Maildir/
    
    # mbox yedeği: dosya her gece bastan aktarilir
    rsync -a /var/mail/kullanici /yedek/kullanici.mbox
    

    Kota tarafında da davranış farklıdır. mbox'ta kota basitçe dosya boyutudur; kullanıcı 10.000 mesaj sildiğinde dosya küçülmez, ta ki istemci "compact/expunge" isteyene kadar — yani kullanıcı yer açtığını sanır ama kota hâlâ doludur. Maildir'de silinen mesajın dosyası kalktığı anda yer boşalır; maildirsize sayacı da buna göre güncellenir. Kota mantığını panel tarafından yönetiyorsanız cPanel e-posta kotası yazısı sınırın kullanıcıya nasıl yansıdığını ayrıntılı anlatıyor.

    Karşılaştırmayı tek tabloda toplayalım:

    ÖlçütmboxMaildir
    Diskteki yapıTek düz metin dosyasıMesaj başına bir dosya
    Teslimat sırasında kilitGerekli, çakışmaya açıkGerekmez
    Tek mesaj silme maliyetiTüm dosyayı yeniden yazTek unlink()
    NFS üzerinde güvenlikRiskliGüvenli
    Artımlı yedeklemeVerimsizÇok verimli
    inode tüketimiÇok düşükYüksek
    Büyük klasörde sıralı taramaHızlıDaha yavaş (çok dosya açma)
    Bozulma yarıçapıTüm klasör risk altındaYalnızca tek mesaj
    Elle inceleme kolaylığıless ile açılırDosya dosya bakmak gerekir

    Postfix ve Dovecot Tarafında Yapılandırma#

    Biçimi belirleyen iki yer vardır: mesajı diske yazan teslimat aracı (Postfix'in kendi local teslimatı ya da Dovecot LDA/LMTP) ve IMAP sunucusu. İkisinin aynı biçimi ve aynı yolu göstermesi zorunludur; farklı gösterirlerse mailler bir yere düşer, kullanıcı başka yere bakar.

    # /etc/postfix/main.cf
    # Sondaki egik cizgi kritiktir: "Maildir/" Maildir demektir,
    # "Maildir" (cizgisiz) yazarsaniz Postfix bunu bir mbox DOSYASI sanir.
    home_mailbox = Maildir/
    
    # mbox istiyorsaniz klasik yol:
    # mail_spool_directory = /var/mail
    
    # /etc/dovecot/conf.d/10-mail.conf
    # Maildir
    mail_location = maildir:~/Maildir
    
    # mbox (INBOX ayri bir dosyada, digerleri ~/mail altinda)
    # mail_location = mbox:~/mail:INBOX=/var/mail/%u
    

    Değişikliği uygulayıp doğrulamak için:

    sudo postfix check && sudo systemctl reload postfix
    sudo doveconf -n | grep -E 'mail_location|mail_home'
    sudo systemctl restart dovecot
    
    # Bir kullanicinin kutusunu Dovecot gozuyle listele
    sudo doveadm mailbox list -u [email protected]
    

    Kendi sunucunuzda bu dosyalara dokunma imkânınız yoksa (paylaşımlı hostingde yoktur) biçim zaten sağlayıcı tarafından seçilmiştir; cPanel tabanlı sistemler Maildir kullanır. Tam kontrol istiyorsanız VDS ya da sanal sunucu üzerinde kendi Postfix + Dovecot kurulumunuzu yönetmeniz gerekir.

    mbox'tan Maildir'e Dönüştürme#

    Eski bir sunucudan devraldığınız mbox kutularını Maildir'e çevirmek yaygın bir iştir. İki sağlam yol var. Birincisi mb2md betiği: tek bir mbox dosyasını ya da bir dizin dolusu mbox'u Maildir'e dönüştürür.

    # Tek bir gelen kutusunu donustur
    mb2md -s /var/mail/kullanici -d /home/kullanici/Maildir
    
    # ~/mail altindaki tum mbox klasorlerini alt klasor olarak aktar
    mb2md -s /home/kullanici/mail -R -d /home/kullanici/Maildir
    

    İkinci ve daha güvenli yol Dovecot'un kendi eşitleme aracıdır. Kaynak biçimi komut satırında geçici olarak ezip hedefe Maildir olarak yazdırırsınız; bu yöntem bayrakları ve klasör aboneliklerini de korur:

    # Kaynagi mbox olarak oku, hedefe Maildir olarak yaz
    sudo doveadm -o mail_location='mbox:~/mail:INBOX=/var/mail/%u' \
      backup -u [email protected] maildir:~/Maildir
    

    Dönüştürmeden önce mutlaka bir kopya alın ve işlem bittiğinde mesaj sayılarını karşılaştırın. Dönüştürme yerine doğrudan yeni sunucuya IMAP üzerinden aktarmayı tercih ederseniz — ki çoğu durumda daha temizdir — imapsync ile mail taşıma yöntemi biçim farkını tamamen ortadan kaldırır, çünkü protokol seviyesinde çalışır ve kaynağın diskte ne kullandığıyla ilgilenmez.

    Hangisini Seçmeli ve Sık Yapılan Hatalar#

    Pratik cevap kısa: yeni kurulan hemen her sistemde Maildir seçin. mbox'u yalnızca çok özel bir durumda tercih edersiniz; örneğin inode sayısı sıkı sınırlı bir dosya sisteminde çalışıyorsanız, kutular küçükse ve mesajları sıralı olarak tarayan eski bir araçla entegrasyonunuz varsa. Onun dışında Maildir'in kilitlenmeye dayanıklılığı, artımlı yedeklenebilirliği ve bozulma yarıçapının tek mesajla sınırlı olması tartışmasız üstündür. Dovecot kullanıyorsanız üçüncü bir seçenek olarak mdbox biçimini de değerlendirebilirsiniz: birden fazla mesajı tek dosyada toplayarak inode baskısını azaltır, ancak yalnızca Dovecot ile okunabilir ve elle kurtarma yapmayı zorlaştırır.

    Şimdi en sık gördüğüm hatalara gelelim. Birincisi, Postfix'te home_mailbox değerinin sonundaki eğik çizgiyi unutmak. home_mailbox = Maildir yazdığınızda Postfix bunu bir mbox dosyası sanır, ~/Maildir adında düz bir dosya oluşturur ve Dovecot orada Maildir dizini beklediği için kullanıcı boş bir gelen kutusu görür. Mailler kaybolmamıştır, yanlış biçimde yanlış yere yazılmıştır.

    İkincisi, Maildir dizinlerinin sahipliğini ve izinlerini bozmaktır. Root olarak elle klasör oluşturduğunuzda dosyalar root'a ait olur ve teslimat sessizce başarısız olur ya da kullanıcı okuyamaz. Doğrusu:

    # Maildir iskeletini dogru sahiplikle olustur
    sudo -u kullanici mkdir -p /home/kullanici/Maildir/{tmp,new,cur}
    sudo chown -R kullanici:kullanici /home/kullanici/Maildir
    sudo chmod -R 700 /home/kullanici/Maildir
    

    Üçüncüsü, mbox kutusunu canlıyken kopyalamaktır. Dosya kullanımdayken cp ile alınan kopya, tam ortasından bölünmüş bir mesajla sonuçlanabilir. Maildir'de böyle bir risk yoktur, çünkü her dosya bağımsızdır. Dördüncüsü, çok büyük tek bir klasör oluşturmaktır: 300.000 mesajlık tek bir cur/ dizini Maildir'de bile yavaşlar; kullanıcıları yıllara göre arşiv klasörlerine bölmeye teşvik edin. Kutuların düzenli bir kopyasını almak isterseniz e-posta hesabı yedekleme yazısındaki yöntemler her iki biçim için de geçerlidir.

    Sıkça Sorulan Sorular#

    Maildir mi mbox mu daha hızlı çalışır#

    Tek bir doğru cevap yok; hız erişim biçimine bağlıdır. Tüm klasörü baştan sona sıralı okumak gerektiğinde mbox tek dosya olduğu için daha hızlıdır. Ancak günlük kullanımın tamamı tek mesaj açmak, silmek ve yeni mesaj teslim etmekten oluşur ve bu işlemlerde Maildir açık ara öndedir, çünkü hiçbir zaman tüm kutuyu yeniden yazmaz. Gerçek dünyada Maildir'in kullanıcıya hissettirdiği hız daha yüksektir.

    Mail sunucumun hangi biçimi kullandığını nasıl kontrol ederim#

    En doğrudan yol IMAP sunucusunun yapılandırmasına bakmaktır. Dovecot'ta doveconf -n | grep mail_location komutu size maildir: ya da mbox: ile başlayan değeri döner. Ayrıca kullanıcının ev dizinine bakabilirsiniz: içinde new, cur, tmp alt dizinleri olan bir Maildir klasörü görüyorsanız Maildir kullanılıyordur, /var/mail/kullanici yolunda tek büyük dosya varsa mbox kullanılıyordur.

    mbox'tan Maildir'e geçerken mailler kaybolur mu#

    Doğru araçla yapıldığında kaybolmaz. mb2md veya Dovecot'un doveadm backup komutu mesajları ve okundu bilgilerini korur. Riskli olan kısım dönüştürmenin kendisi değil, dönüştürme sırasında sunucuya yeni mail düşmesidir; bu yüzden işlemi kısa bir bakım penceresinde, Postfix teslimatını duraklatarak yapmak en güvenlisidir. Her hâlükârda önce tam bir kopya alın ve sonra mesaj sayılarını karşılaştırın.

    Maildir çok fazla inode tüketiyor, ne yapmalıyım#

    Önce df -i ile gerçekten inode sıkıntısı olduğunu doğrulayın. Çözüm olarak dosya sistemini daha yüksek inode oranıyla yeniden oluşturabilir, kullanıcıları eski mailleri arşivlemeye yönlendirebilir ya da Dovecot'un mdbox biçimine geçebilirsiniz. mdbox birden çok mesajı tek dosyada toplar ve inode tüketimini büyük ölçüde düşürür; bedeli, kutunun yalnızca Dovecot tarafından okunabilir olmasıdır.

    Paylaşımlı hostingde bu seçimi ben yapabilir miyim#

    Hayır, paylaşımlı barındırmada depolama biçimi sunucu genelinde sağlayıcı tarafından belirlenir ve kullanıcı başına değiştirilemez. cPanel tabanlı sistemler Maildir kullanır, dolayısıyla zaten modern ve güvenli tarafta olursunuz. Biçimi kendiniz seçmek istiyorsanız root erişimli bir sunucuya geçmeniz gerekir.

    Maildir dosya adındaki harfler ne anlama geliyor#

    Dosya adının sonundaki iki nokta ve 2, işaretinden sonra gelen harfler mesajın durum bayraklarıdır: S okunmuş, R yanıtlanmış, F bayraklanmış, D taslak, T silinmiş olarak işaretli, P iletilmiş anlamına gelir. Bu harfleri elle değiştirmek mesajın istemcide görünen durumunu da değiştirir; ancak sunucu çalışırken dosya adlarını elle düzenlemek indeks tutarsızlığına yol açabileceği için önerilmez.

    Hangi biçim yedeklemede daha az yer kaplar#

    Sıkıştırılmamış hâlde ikisi de kabaca aynı yeri kaplar, çünkü veri aynıdır. Fark, yedeğin aktarım maliyetindedir: Maildir'de her gece yalnızca yeni dosyalar kopyalanır, mbox'ta ise tek dosya değiştiği için tamamı yeniden aktarılabilir. Sürüm tutan (versiyonlu) yedekleme sistemlerinde bu fark katlanarak büyür ve Maildir açık ara daha ekonomik olur.

    Kapanış#

    Özetle: mbox basit ve eskidir, tek dosya tutar, kilitlenmeye açıktır ve tek mesaj silmek için tüm kutuyu yeniden yazar. Maildir her mesajı ayrı dosyada saklar, teslimat sırasında kilit gerektirmez, artımlı yedeklemeyle çok iyi anlaşır ve bir bozulma olduğunda kaybınız tek mesajla sınırlı kalır. Aklınızda kalması gereken üç şey: yeni kurulumda Maildir seçin, Postfix'te home_mailbox değerinin sonundaki eğik çizgiyi asla unutmayın, ve Maildir kullanıyorsanız df -i çıktısını izleme listenize ekleyin.

    Bu ayarlarla uğraşmadan hazır ve doğru yapılandırılmış bir posta altyapısı istiyorsanız Clou.TR tarafında iki yol var: e-posta çözümlerimizde kutular Maildir tabanlı, kotası ve yedeği hazır biçimde gelir; tam kontrolü elinizde tutmak isterseniz VDS üzerinde kendi Postfix + Dovecot kurulumunuzu yönetebilirsiniz. Yüksek hacimli gönderim için ayrılmış bir yapı arıyorsanız SMTP sunucu paketimiz, kutuların düzenli kopyası için de yedekleme hizmetimiz işi otomatiğe bağlar.

    MaildirmboxDovecot

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.