Mailcow ile Kendi E-posta Sunucunuzu Kurma Rehberi
Mailcow kurulumuna başlamadan önce 25 numaralı portun açık olduğunu doğrulayın. Gmail 550 5.7.25 hatasını önlemek için gereken doğru PTR ve DNS yapılandırmasını öğrenin.
Ne inşa ediyorsunuz
Kendi sunucunuz üzerinde eksiksiz bir e-posta sunucusu: e-posta gönderip almak için SMTP, telefonunuz ve dizüstü bilgisayarınızın eşzamanlı kalmasını sağlayan IMAP, bir webmail istemcisi ve her mesajı her iki yönde de puanlayan bir spam filtresi. mailcow-dockerized; Postfix, Dovecot, Rspamd, SOGo webmail, MariaDB, Redis ve bir ACME istemcisini tek bir Docker Compose yığınında birleştirir, bu nedenle yazılım kısmı zor değildir. Sistemi yarım saat içinde çalışır hale getireceksiniz.
Zor olan kısım, çevresindeki her şeydir. E-posta, internetin geri kalanının yepyeni bir sunucuya aktif olarak güvenmediği tek servistir ve "çalışıyor" durumu ile "Gmail'in her mesajı sessizce yutması" arasındaki fark, dört DNS kaydına ve tam olarak kontrol edemeyebileceğiniz bir IP itibarı ayarına dayanır. Herhangi bir kiralama yapmadan önce aşağıdaki ön koşulları okuyun. Okuduktan sonra itibar yönetimi sürecinin buna değmeyeceğine karar verirseniz, bu meşru bir yaklaşımdır; 2026 yılında nelerin self-host edilmeye değer olduğuna dair özetimiz, tam da bu nedenlerden dolayı e-postayı "sadece gerçekten istiyorsanız" kategorisine yerleştirir.
Ön koşullar projenin kendisidir
Bunlardan herhangi birini atladığınızda, gönderdiğiniz e-postalar asla ulaşmayacaktır. Her birinin kullanıcıları başarısızlığa uğratma sıklığına göre kabaca sıralanmış liste şöyledir:
Giden 25 numaralı port açık olmalıdır. Sunucunuz, Gmail ve Microsoft'a TCP 25 numaralı port üzerinden teslimat yapar. Birçok VPS ve bulut sağlayıcısı, spam ile mücadele etmek için giden 25 numaralı portu varsayılan olarak engeller. Bu engelleme sessiz gerçekleşir; açılışta hiçbir hata oluşmaz, her şey sağlıklı görünür ancak e-postalar kuyrukta sonsuza kadar bekler. Herhangi bir kurulum yapmadan önce bunu test edin. Eğer port engellenmişse, tek çözüm sağlayıcınıza bir destek talebi göndererek portun açılmasını istemektir; bazı sağlayıcılar eski hesaplar için bunu yapar, bazıları ise asla yapmaz.
Kullanılabilir itibara sahip temiz bir IP. Geri dönüştürülmüş VPS IP adresleri, genellikle önceki kullanıcının spam faaliyetleri nedeniyle kara listelerde yer alır. Kuruluma başlamadan önce IP adresinizi Spamhaus veya mxtoolbox gibi bir hizmet üzerinden kontrol edin. Listelenmiş bir IP, kodlama ile aşamayacağınız reddedilme sorunları anlamına gelir.
DNS kontrolü ve doğru bir PTR kaydı. Alan adınızın bölgesine (zone) kayıt eklemeniz gerekir ve sunucunuzun IP adresi için, e-posta ana makine adınıza (hostname) işaret eden bir ters DNS (PTR) kaydına ihtiyacınız vardır. PTR kaydı neredeyse hiçbir zaman DNS panelinizde ayarlanmaz; bu kayıt IP adresinin sahibine aittir, bu nedenle VPS sağlayıcınızın kontrol panelinden veya destek talebi ile ayarlanmalıdır.
6 GiB RAM ve 2 vCPU rahat bir alt sınırdır. mailcow'un kişisel bir kurulum için minimum gereksinimi 6 GiB RAM ve 1 GiB swap alanıdır; birkaç kullanıcının aktif olduğu durumlarda 8 GiB önerilir. Yaklaşık 2.5 GiB'ın altında, generate_config.sh çekirdeğin konteynerleri sonlandırmaması için ClamAV virüs tarayıcısını devre dışı bırakmayı teklif eder. Başlangıç için 20 GB SSD alanı ayırın.
Çıplak bir IP değil, bir DNS adı. mail.example.com gibi bir ana makine adı seçin. Bu tek isim; MAILCOW_HOSTNAME değeriniz, TLS sertifikanızın konusu, PTR hedefiniz ve SMTP banner'ınız olacaktır. Her yerde tutarlı tutun.
Adım 1, 25 numaralı giden portun açık olduğunu doğrulayın
Bunu ilk sırada yapın. Başarısız olursa diğer tüm işlemler boşa kürek çekmek olacaktır. Yeni kurulan VPS üzerinden, gerçek bir posta sunucusuyla SMTP görüşmesi başlatmayı deneyin:
sudo apt update && sudo apt install -y netcat-openbsd
nc -vz -w 5 gmail-smtp-in.l.google.com 25Çalışan bir sonuç anında gelir:
Connection to gmail-smtp-in.l.google.com (142.250.x.x) 25 port [tcp/smtp] succeeded!Engellenmiş bir port beş saniye boyunca yanıt vermez ve ardından başarısız olur:
nc: connect to gmail-smtp-in.l.google.com port 25 (tcp) timed out: Operation now in progressBu zaman aşımı bir engellemedir. Bu, yerel güvenlik duvarınız değil, sağlayıcı tarafındaki bir ağ filtresidir; dolayısıyla yerel bir değişiklik bunu düzeltmez. Bir destek talebi açın: "Lütfen <IP> adresindeki VPS'im için 25 numaralı giden TCP portunu etkinleştirin; meşru bir posta sunucusu çalıştırıyorum." Bu işlem "başarılı" (succeeded) yanıtını dönene kadar mailcow kurulumu yapmayın. Gelen 25 numaralı portun (diğer sunucuların size ulaşması) ayrı bir yol olduğunu ve genellikle açık olduğunu, sağlayıcıların kısıtladığı kısmın giden trafik olduğunu unutmayın.
Adım 2, DNS kayıtlarını şimdi yapılandırın
DNS değişikliklerinin yayılması zaman alır, bu nedenle kurulumdan önce mümkün olan tüm kayıtları yayınlayın. Alan adınızın example.com, posta sunucunuzun mail.example.com ve IP adresinizin 10.0.0.10 olduğunu varsayın. Bölge dosyanızda şunları oluşturun:
mail.example.com. A 10.0.0.10
mail.example.com. AAAA 2001:db8::10 ; only if you have IPv6
example.com. MX 10 mail.example.com.
example.com. TXT "v=spf1 mx -all"
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:postmaster@example.com"SPF kaydı, "bu alan adı için yalnızca benim MX sunucum posta gönderebilir, geri kalanını reddet" anlamına gelir. DMARC politikasını p=none seviyesinde başlatın; böylece kendi postalarınızı reddetmeden raporları izleyebilirsiniz. Hizalama doğrulandıktan sonra politikayı önce p=quarantine, ardından p=reject seviyesine sıkılaştırın. İki kayıt kasıtlı olarak eksik bırakılmıştır: Adım 6'da mailcow tarafından sizin için oluşturulacak olan DKIM ve şu an servis sağlayıcınızın paneli üzerinden ayarlamanız gereken PTR kaydı.
10.0.0.10 için PTR (ters DNS) kaydını, MAILCOW_HOSTNAME değerinin tam karşılığı olan mail.example.com olarak ayarlayın. Bu, çoğu kişinin unuttuğu tek kayıttır ve büyük servis sağlayıcıları bu kayıt eksik olduğunda postaları reddeder. Eğer panelinizde rDNS alanı bulunmuyorsa, bir destek talebi oluşturun.
Adım 3, Docker Kurulumu
mailcow, Compose v2 eklentisine sahip Docker Engine gerektirir. Compose eklentisi içermeyen Ubuntu docker.io paketi yerine Docker'ın resmi kolaylık betiğini kullanın:
curl -fsSL https://get.docker.com | sudo sh
sudo docker compose versionBir Docker Compose version v2.x satırı görmelisiniz. Eğer docker compose version komutu docker: 'compose' is not a docker command çıktısını veriyorsa, Docker Engine kuruludur ancak Compose eklentisi eksiktir. Eklentiyi Docker deposundan kurun, yukarıdaki betiği yeniden çalıştırın veya her ikisini de Docker'ın kendi apt deposundan kuran Docker Compose temel bilgiler kılavuzumuzu takip edin.
Adım 4, mailcow'u kopyalayın ve yapılandırmayı oluşturun
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
umask
sudo ./generate_config.shumask komutunun 0022 çıktısını verdiğinden emin olun; mailcow hatalı bir dosya maskesiyle kurulmayı reddeder ve yeni bir Ubuntu 24.04 root kabuğu zaten 0022 değerini verir. Betik daha sonra en önemli olan tek şeyi sorar: tam nitelikli alan adı (FQDN). mail.example.com değerini girin; bu değer, A kaydınız ve PTR kaydınızla tam olarak eşleşmelidir. Betik, tüm yığının okuduğu tek ortam dosyası olan mailcow.conf dosyasını oluşturur. Web portlarını (HTTP_PORT, HTTPS_PORT) değiştirmeniz veya küçük bir sunucuda ClamAV'yi devre dışı bırakmanız gerekirse bu dosyayı açın:
MAILCOW_HOSTNAME=mail.example.com
HTTP_PORT=80
HTTPS_PORT=443
SKIP_CLAMD=n # set to y to drop the virus scanner on a <2.5 GiB boxSKIP_FTS=y, düşük RAM'li bir sunucudaki diğer önemli ayardır: tam metin arama, mailcow belgelerinde belirtilen ikinci bellek tüketicisidir ve bunu devre dışı bırakmak size yalnızca web arayüzünde gövde metni arama özelliğine mal olur.
Sunucuda başka bir servis tarafından kullanılmadığı sürece HTTP_PORT=80 ve HTTPS_PORT=443 değerlerini değiştirmeyin; mailcow'un yerleşik ACME istemcisi, sertifikayı alabilmek için 80 numaralı portun internetten erişilebilir olmasına ihtiyaç duyar. Aynı sunucuda ayrı bir nginx-plus-Certbot kurulumu çalıştırmamanızın nedeni budur; mailcow kendi TLS sertifikalarını dahili olarak oluşturur ve yeniler, 80/443 portlarını işgal eden ikinci bir servis bu süreci bozar. Aynı durum, genel bir web arayüzü isteyen diğer tüm servisler için de geçerlidir; bu nedenle, kendi reverse proxy'sini 443 üzerinde bekleyen Jellyfin kütüphanesini 90'lar video mağazası gibi yeniden tasarlayan Halcyon gibi bir yapı, farklı bir sunucuda barındırılmalıdır. İstisna, hiçbir zaman genel bir web portu talep etmeyen servislerdir: kendi kendine barındırılan bir RustDesk relay, yalnızca kendi 21115 ile 21119 arasındaki port aralığını dinler, bu nedenle bant genişliği kapasiteniz uygunsa aynı sunucuda çalışabilir.
Adım 5, Yığını başlatın ve giriş yapın
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psÇekme işlemi yaklaşık iki düzine imaj indirir; birkaç dakika bekleyin. docker compose ps komutu her container için running (veya healthy) durumunu gösterdiğinde, tarayıcıda https://mail.example.com adresini açın. Varsayılan yönetici giriş bilgileri kullanıcı adı admin, parola moohoo şeklindedir. Bu parolayı yönetici arayüzünde Access → Administrators menüsü altından derhal değiştirin. Tarayıcı NET::ERR_CERT_AUTHORITY_INVALID uyarısı verirse, ACME sertifikası henüz düzenlenmemiş demektir; sistemin bozuk olduğunu varsaymadan önce aşağıdaki ACME hatası bölümüne bakın. İlk bir veya iki dakika boyunca kendinden imzalı bir yer tutucu sertifika görülmesi normaldir.
Adım 6, Bir alan adı ve posta kutusu ekleyin, DKIM yayınlayın
Yönetim arayüzünde Mail Setup sayfasını açın (Configuration → Mail Setup) ve Domains sekmesi altında Add domain seçeneğine tıklayarak example.com değerini girin. Ardından Mailboxes altında Add mailbox seçeneğini kullanarak bir parola ile you@example.com posta kutusunu oluşturun. Bu, IMAP üzerinden halihazırda erişilebilir durumda olan çalışan bir posta kutusudur.
Şimdi DKIM anahtarı için işlem yapın. Configuration → ARC/DKIM keys yolunu izleyin; mailcow, alan adını eklediğinizde bir anahtar oluşturmuş olabilir. Eğer oluşturmadıysa buradan bir tane üretin, alan adını seçin, selector olarak dkim değerini koruyun, 2048-bit seçeneğini belirleyin ve Add butonuna tıklayın. Görüntülenen uzun TXT değerini kopyalayın ve şu şekilde yayınlayın:
dkim._domainkey.example.com. TXT "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqh...long-key...QAB"mailcow'un Domains sayfasında, beklenen tüm kayıtları listeleyen ve halihazırda yayınlanmış olanların yanında yeşil onay işareti veya kırmızı çarpı gösteren bir DNS butonu bulunur. Bunu bir kontrol listesi olarak kullanın ve teslim edilebilirliği test etmeden önce her satırı yeşil hale getirin. Yayınlama işleminden sonra kırmızı bir DKIM satırı görmeniz, genellikle anahtarın TXT parçalarına yanlış bölündüğü anlamına gelir; 2048-bitlik bir anahtar, tek bir TXT dizisi için 255 karakterlik sınırı aşar. Bu nedenle değeri tek bir mantıksal değer olarak yapıştırın ve DNS sağlayıcınızın bunu sizin yerinize parçalara ayırmasına izin verin.
Adım 7, Teslim edilebilirliği test edin ve 10/10 puanı hedefleyin
mail-tester.com adresine gidin, size gösterilen rastgele adresi kopyalayın ve yeni posta kutunuzdan bu adrese bir ileti gönderin; bunun için https://mail.example.com/SOGo adresindeki SOGo webmail arayüzüne giriş yapıp gönderim sağlayın. Ardından "Then check your score" butonuna tıklayın.
10/10 puanı hedefleyin. Yaygın puan kesintileri ve nedenleri şunlardır:
- SPF uyumsuzluğu,
MX/SPF kaydınız eksik veya gönderim yapan IP adresi kapsam dahilinde değil. SPF TXT kaydını tekrar kontrol edin. - DKIM imzası doğrulanamıyor,
dkim._domainkeyTXT kaydı eksik, henüz yayılma sürecinde veya hatalı biçimlendirilmiş. En sık karşılaşılan hata budur. - PTR kaydı yok / PTR uyuşmazlığı, ters DNS (reverse DNS) sorgusu
mail.example.comadresine çözümlenmiyor. Sağlayıcınız üzerinden düzeltin. - Blok listesinde yer alıyor, IP adresinizin geçmiş itibarı. Listeden çıkarılma talebinde bulunun veya daha temiz bir IP adresi talep edin.
Puanınız 10/10 olana kadar Gmail veya Outlook gibi servislere gerçek e-posta göndermeyin. Düşük bir puan ve yeni bir IP adresi, alan adınızın daha ilk günden işaretlenmesine (flagged) neden olur.
Adım 8, Gerçek bir e-posta istemcisi bağlama
Thunderbird, Apple Mail veya telefonunuzu bu ayarları kullanarak sunucuya yönlendirin. Sunucu ana bilgisayar adı (host) hepsi için mail.example.com şeklindedir:
- IMAP: port 993, SSL/TLS (veya STARTTLS ile 143)
- SMTP gönderimi: port 465, SSL/TLS (veya STARTTLS ile 587)
- Kullanıcı adı: tam e-posta adresi,
you@example.com - Parola: belirlediğiniz posta kutusu parolası
İstemci postalarını asla 25 numaralı port üzerinden göndermeyin; bu port yalnızca sunucudan sunucuya iletişim içindir. mailcow bu portta kimlik doğrulamalı gönderime izin vermez ve bu porta yönlendirilen istemciler reddedilir. Eğer bir istemci Relay access denied hatası veriyorsa, 25 numaralı port üzerinden veya kimlik doğrulaması olmadan gönderim yapmaya çalışıyordur; ayarları posta kutusu kimlik bilgilerinizle 465 veya 587 numaralı portlara geçirin.
Adım 9, Gerçekten önemli olan verileri yedekleyin
mailcow, tüm durum bilgisi içeren (stateful) birimleri anlık görüntü (snapshot) olarak alan bir yedekleme betiği ile gelir. Bu betiği harici bir diske veya bağlı bir uzak dizine çalıştırın:
sudo MAILCOW_BACKUP_LOCATION=/opt/mailcow-backups \
./helper-scripts/backup_and_restore.sh backup allall altı farklı öğeyi yakalar; bunlardan herhangi birinin kaybı veri kaybı anlamına gelir: vmail (gerçek posta kutuları), crypt (vmail verilerini şifreleyen anahtarlar; vmail olmadan işe yaramazlar), mysql (alan adlarını, kullanıcıları, takma adları ve ayarları tutan MariaDB), redis (kuyruk ve önbellek durumu), rspamd (öğrenilmiş spam/ham verileri) ve postfix (posta kuyruğu). Bu betik, sıkıştırılmış arşivler oluşturan bir yardımcı container içinde çalışır; böylece stack canlıyken bile yedekler tutarlı kalır. Bunu her gece çalışan bir cron job ile otomatize edin ve eski yedekleri temizlemek için --delete-days 14 parametresini ekleyin. Çalışmayı durduran bir cron job sessizce başarısız olur; bu nedenle betiğin çıkış durumunu (exit status) fark edebileceğiniz bir yere gönderin; kendi barındırdığınız bir ntfy sunucusu, aynı cron girdisinden tek satırlık bir curl komutu ile hata bildirimini gerçekleştiği gece telefonunuza iletebilir. Geri yükleme işlemi, anlık görüntüleri listeleyen ve hangisini geri getireceğinizi seçmenize olanak tanıyan restore parametresi ile aynı betik üzerinden yapılır. Geri yükleme testi yapmadığınız bir yedek, yedek değil sadece bir temennidir; boş bir VPS üzerinde bir deneme çalışması yapın.
Adım 10, Zamanlanmış güncelleme
mailcow güncellemeleri, yeni kodu çeken, mailcow.conf veritabanı şemalarını güncelleyen, imajları önceden yükleyen ve container'ları sırasıyla yeniden başlatan kendi betiği aracılığıyla yapılır:
cd /opt/mailcow-dockerized
sudo ./update.sh --check # reports whether an update exists, changes nothing
sudo ./update.sh # applies itÖnce yedek alın (Adım 9), çünkü şema migrasyonunu geri almak zordur. Güncellemeler sık yayınlanır ve internete açık daemon'lar için güvenlik yamaları içerir; bu nedenle bir posta sunucusunu aylarca güncellemeden bırakmayın. Bir güncelleme herhangi bir container'ı sağlıksız durumda bırakırsa, sudo docker compose logs --tail=50 <service>-mailcow komutu ayağa kalkamayan daemon'ın adını belirtir.
Sıkılaştırma üzerine bir not
mailcow, posta ve web posta portlarına yönelik saldırı yapan IP adreslerini engelleyen kendi netfilter servisini (netfilter-mailcow) çalıştırır; bu nedenle posta tarafı kutudan çıktığı haliyle korunmaktadır. Bu durum, ana makine üzerindeki SSH servisini kapsamaz; SSH hala dış dünyaya açıktır ve kaba kuvvet (brute-force) saldırılarına maruz kalmaya devam eder. Bu kurulumu SSH kimlik doğrulama günlüğünü izleyen Fail2ban ve yalnızca anahtar tabanlı giriş yöntemiyle birlikte kullanın. mailcow yönetici arayüzünü güçlü bir parola ile koruyun ve ideal olarak genel internete kapatın veya bir VPN arkasında tutun.
Hata modları ve kesin dizeler
Posta kuyruğa alınıyor ancak iletilmiyor. sudo docker compose exec postfix-mailcow postqueue -p komutunu çalıştırın veya yönetici arayüzündeki posta kuyruğunu inceleyin; girdiler şu hata ile ertelenmiş durumdadır:
status=deferred (connect to gmail-smtp-in.l.google.com[142.250.x.x]:25: Connection timed out)Bu durum, servis sağlayıcınız tarafından 25 numaralı giden portun engellendiğini gösterir (Adım 1). Hiçbir yapılandırma değişikliği bunu çözmez, bir destek talebi oluşturun. Sorun DNS veya TLS kaynaklı değildir; belirleyici olan, uzak bir MX sunucusuna 25 numaralı port üzerinden yapılan timed out bağlantı girişimidir.
Gmail her şeyi spam olarak işaretliyor veya geri çeviriyor. Gmail'de iletiyi açın, "Orijinali göster" seçeneğine tıklayın ve kimlik doğrulama sonuçlarını okuyun. dkim=fail veya dkim=none hatası, dkim._domainkey TXT kaydınızın eksik, hatalı veya henüz yayılmamış olduğu anlamına gelir; ARC/DKIM sayfasında gösterilen değeri tam olarak yeniden yayınlayın ve TTL süresinin dolmasını bekleyin. spf=fail hatası, SPF/MX kayıtlarınızın IP adresinizi kapsamadığını gösterir. Hizalama (alignment) kritiktir; tek bir kontrolün başarısız olması iletinin spam klasörüne düşmesine yeterlidir.
Büyük sağlayıcılar bağlantıyı reddediyor. Geri dönen iletiler veya Postfix günlükleri, Gmail'in PTR reddini içerir:
550-5.7.25 [10.0.0.10] The IP address sending this message does not have a PTR
550-5.7.25 record setup, or the corresponding forward DNS entry does not match
550 5.7.25 the sending IP. As a policy, Gmail does not accept messages from IPs
550 5.7.25 with missing PTR records.550 5.7.25 kodu, eksik veya uyumsuz bir ters DNS (reverse DNS) kaydına işaret eder. Sağlayıcınız üzerinden IP adresiniz için PTR kaydını mail.example.com olarak ayarlayın (Adım 2). İleri (A) ve ters (PTR) DNS kayıtları birbiriyle uyumlu olmalı ve her ikisi de mailcow'un diğer sunuculara kendini tanıtırken kullandığı ana bilgisayar adını (hostname) işaret etmelidir.
Tarayıcı, geçmeyen bir sertifika uyarısı gösteriyor. acme-mailcow container'ı gerçek bir sertifika alamamıştır. Günlük kaydını kontrol edin:
sudo docker compose logs acme-mailcow | tail -n 40Cannot validate any hostnames, skipping Let's Encrypt for 1 hour. gibi bir satır veya doğrulama hatası, 80 numaralı portun internetten erişilemez olduğunu ya da A kaydının bu sunucuyu işaret etmediğini gösterir. mail.example.com adresinin sunucuya çözümlendiğini doğrulayın, ana bilgisayar güvenlik duvarında 80 ve 443 numaralı portları açın ve başka hiçbir servisin bu portları kullanmadığından emin olun. Sorunu giderdikten sonra, bir saatlik bekleme süresini beklemek yerine istemciyi sudo docker compose restart acme-mailcow komutuyla yeniden başlatın.
FAQ
E-posta barındırmak (self-hosting) gerçekten buna değer mi?
Veri sahipliği, sınırsız takma ad ve tam kontrol istiyorsanız, evet; mailcow size bir VPS fiyatına profesyonel bir altyapı sunar. Ancak e-postaların teslim edilebilirliği sürekli bir çabadır: IP itibarı, DNS uyumu ve kara liste takibi asla tam olarak bitmez. Bir günlük spam klasörüne düşmenin bile maliyetli olduğu kritik iş adresleri için yönetilen bir servis sağlayıcı kullanmak daha pragmatik bir tercihtir. Kontrole kolaylıktan daha fazla değer veriyorsanız ve bu sistemle ilgilenmeye vaktiniz varsa kendi sunucunuzu barındırın. Eğer asıl amacınız e-postadan ziyade verilerinizi başkalarının sunucularından çıkarmaksa, teslim edilebilirlik sorunu olmayan bir servisle başlayın: Fotoğraf kütüphaneleri bu konuda sorunsuzdur ve PhotoPrism ve Immich karşılaştırmamız, aynı tür VPS üzerinde bu kurulum için gereken RAM limitlerini ve yedekleme komutlarını detaylandırır.
Giden 25 numaralı portun engelli olup olmadığını nasıl anlarım?
Sunucudan nc -vz -w 5 gmail-smtp-in.l.google.com 25 komutunu çalıştırın. "succeeded!" çıktısı portun açık olduğu anlamına gelir; duraksamadan sonra gelen bir timed out ise servis sağlayıcınızın bu portu engellediğini gösterir. Bu, kendi sunucusunu barındıranların e-posta alıp gönderememesinin en yaygın nedenidir ve tek çözümü sağlayıcınızın portu açmasıdır; yerel hiçbir ayar bunu değiştiremez.
E-postalarım neden hala Gmail'in spam klasörüne düşüyor?
Neredeyse her zaman kopuk bir kimlik doğrulama zinciri söz konusudur. Gmail'de "Orijinali göster" seçeneğini kullanın ve spf=pass, dkim=pass ve dmarc=pass değerlerini kontrol edin. Bir dkim=fail hatası, eksik veya hatalı yapılandırılmış bir dkim._domainkey TXT kaydına işaret eder; PTR uyuşmazlığı veya gönderim geçmişi olmayan yeni bir IP adresi de teslimatı olumsuz etkiler. Öncelikle mail-tester.com üzerinden 10/10 puan aldığınızdan emin olun, ardından IP adresinizi yavaş yavaş ısıtın; ilk günden yüksek hacimli gönderim yapmak yerine günlük birkaç mesajla başlayıp zamanla artırın.
Tam olarak neleri yedeklemem gerekiyor?
backup_and_restore.sh backup all komutunu çalıştırın ve tüm yedek setini sunucu dışında tutun. Bu komut vmail (posta kutuları), crypt (şifre çözme anahtarları), MariaDB veritabanı (alan adları, kullanıcılar, takma adlar, ayarlar), Redis, Rspamd'in öğrendiği veriler ve Postfix kuyruğunu kapsar. İnsanların gözden kaçırdığı kısım crypt birimidir; bu olmadan vmail yedeği okunamaz bir şifreli metin yığınıdır. En az bir kez boş bir sunucuda geri yükleme testi yapın.
mailcow'u 2 GB RAM'li bir VPS üzerinde çalıştırabilir miyim?
Rahat bir şekilde çalıştıramazsınız. generate_config.sh, 2.5 GiB altındaki sistemlerde ClamAV'yi devre dışı bırakmayı önerir; ancak bu durumda bile Rspamd, ClamAV, Dovecot ve MariaDB bellek için rekabet eder. Bu da gerçek bir yük altında swap kullanımına ve OOM (Out of Memory) kaynaklı kapanmalara yol açar. Kararlı bir tek kullanıcılı kurulum için 6 GiB RAM ve 1 GiB swap alanını taban kabul edin; birden fazla kişi kullanmaya başladığı anda ise 8 GiB RAM'e geçiş yapın.