Cara Self-Host Mailcow VPS Supaya Diterima Gmail
Uji port 25 sebelum pasang mailcow kerana sekatan akan menghalang e-mel keluar. Sediakan rekod DNS yang betul untuk mengelakkan ralat 550 5.7.25 PTR daripada pelayan Gmail.
Apa yang anda sedang bina
Pelayan e-mel lengkap pada pelayan milik anda: SMTP untuk menghantar dan menerima, IMAP supaya telefon dan komputer riba anda kekal selari, klien webmail, dan penapis spam yang memberikan skor kepada setiap mesej dalam kedua-dua arah. mailcow-dockerized menggabungkan Postfix, Dovecot, Rspamd, SOGo webmail, MariaDB, Redis dan klien ACME ke dalam satu stack Docker Compose, jadi perisian bukanlah bahagian yang sukar. Anda akan memilikinya berjalan dalam masa setengah jam.
Bahagian yang sukar ialah segala perkara di sekelilingnya. E-mel ialah satu-satunya servis di mana seluruh internet secara aktif tidak mempercayai pelayan yang baru dibina, dan jurang antara "ia berfungsi" dengan "Gmail menelan setiap mesej secara senyap" bergantung kepada empat rekod DNS dan satu tetapan reputasi IP yang mungkin tidak sepenuhnya di bawah kawalan anda. Baca prasyarat di bawah sebelum anda menyewa apa-apa. Jika, selepas membacanya, anda membuat keputusan bahawa usaha mengejar reputasi tidak berbaloi, itu adalah jawapan yang sah, ringkasan kami tentang apa yang sebenarnya berbaloi untuk di-self-host pada tahun 2026 meletakkan e-mel di bawah kategori "hanya jika anda benar-benar serius" atas sebab-sebab ini.
Prasyarat ADALAH projek itu sendiri
Jika anda terlepas salah satu daripada perkara ini, e-mel yang dihantar tidak akan sampai. Berikut adalah senarai mengikut kekerapan punca kegagalan pengguna:
Port 25 keluar (outbound) mestilah terbuka. Pelayan anda menghantar e-mel kepada Gmail dan Microsoft melalui TCP port 25. Kebanyakan penyedia VPS dan awan menyekat port 25 keluar secara lalai untuk membendung spam. Sekatan ini tidak mengeluarkan sebarang ralat semasa but, sistem kelihatan normal, namun e-mel hanya akan terperangkap dalam baris gilir (queue) selama-lamanya. Uji port ini sebelum memasang apa-apa. Jika ia disekat, satu-satunya penyelesaian adalah dengan menghantar tiket sokongan kepada penyedia anda untuk membukanya; sesetengah penyedia akan melakukannya untuk akaun yang sudah lama, manakala yang lain mungkin tidak akan melakukannya langsung.
IP yang bersih dengan reputasi yang boleh digunakan. IP VPS yang dikitar semula sering kali sudah berada dalam senarai hitam (blocklist) akibat aktiviti spam penyewa sebelumnya. Semak IP anda di perkhidmatan seperti Spamhaus lookup atau mxtoolbox sebelum meneruskan. IP yang tersenarai dalam senarai hitam akan menyebabkan e-mel ditolak dan anda tidak boleh menyelesaikannya melalui kod.
Kawalan DNS serta rekod PTR yang betul. Anda perlu menambah rekod ke dalam zon domain anda, dan anda memerlukan reverse DNS (PTR) bagi IP pelayan yang menghala kembali ke hostname e-mel anda. Rekod PTR hampir tidak pernah ditetapkan dalam panel DNS anda; ia diuruskan oleh pemilik IP tersebut, jadi ia perlu ditetapkan dalam panel kawalan penyedia VPS anda atau melalui tiket sokongan.
6 GiB RAM dan 2 vCPU adalah tahap minimum yang selesa. Keperluan minimum mailcow adalah 6 GiB RAM ditambah 1 GiB swap untuk pemasangan peribadi, dengan 8 GiB disyorkan sebaik sahaja terdapat beberapa pengguna yang bergantung kepadanya. Di bawah sekitar 2.5 GiB, generate_config.sh akan menawarkan untuk menyahdayakan pengimbas virus ClamAV supaya kernel tidak mula mematikan kontena. Sediakan 20 GB ruang SSD sebagai permulaan.
Nama DNS, bukan sekadar IP. Pilih hostname seperti mail.example.com. Nama tunggal itu akan menjadi MAILCOW_HOSTNAME anda, subjek sijil TLS anda, sasaran PTR anda, dan banner SMTP anda. Pastikan ia konsisten di mana-mana.
Langkah 1, Buktikan port 25 keluar terbuka
Lakukan ini dahulu. Segala usaha lain adalah sia-sia jika langkah ini gagal. Dari VPS yang baru, cuba buka perbualan SMTP dengan pelayan mel sebenar:
sudo apt update && sudo apt install -y netcat-openbsd
nc -vz -w 5 gmail-smtp-in.l.google.com 25Hasil yang berjaya adalah serta-merta:
Connection to gmail-smtp-in.l.google.com (142.250.x.x) 25 port [tcp/smtp] succeeded!Port yang disekat akan tergantung selama lima saat penuh, kemudian gagal:
nc: connect to gmail-smtp-in.l.google.com port 25 (tcp) timed out: Operation now in progressTamat masa (timeout) itu adalah sekatan. Ia merupakan penapis rangkaian di pihak penyedia, bukan firewall anda, jadi tiada perubahan setempat yang dapat membaikinya. Buka tiket sokongan: "Sila aktifkan port TCP 25 keluar untuk VPS saya di <IP>; saya sedang menjalankan pelayan mel yang sah." Jangan pasang mailcow sehingga perkara ini mendapat maklum balas "berjaya" (succeeded). Ambil perhatian bahawa port 25 masuk (pelayan lain menghubungi anda) adalah laluan berasingan dan biasanya terbuka; pihak penyedia biasanya mengehadkan bahagian keluar sahaja.
Langkah 2, Tetapkan rekod DNS sekarang
Perubahan DNS mengambil masa untuk disebarkan, jadi terbitkan semua rekod yang boleh sebelum memulakan pemasangan. Andaikan domain anda ialah example.com, hos mel anda ialah mail.example.com, dan alamat IP ialah 10.0.0.10. Dalam zon DNS anda, cipta:
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"Rekod SPF menyatakan "hanya MX saya yang dibenarkan menghantar e-mel bagi domain ini, tolak yang lain". Mulakan DMARC pada p=none supaya anda boleh memantau laporan tanpa menolak e-mel anda sendiri; ketatkan kepada p=quarantine kemudian p=reject setelah penjajaran (alignment) terbukti. Dua rekod sengaja ditinggalkan: DKIM, yang akan dijana oleh mailcow untuk anda dalam Langkah 6, dan PTR, yang perlu anda tetapkan sekarang dalam panel pembekal anda.
Tetapkan PTR (reverse DNS) untuk 10.0.0.10 kepada mail.example.com, iaitu nilai tepat bagi MAILCOW_HOSTNAME. Ini adalah satu-satunya rekod yang sering dilupakan oleh pengguna, dan pembekal e-mel utama akan menolak e-mel jika rekod ini tiada. Jika panel anda tidak mempunyai medan rDNS, buka tiket sokongan.
Langkah 3, Pasang Docker
mailcow memerlukan Docker Engine dengan pemalam Compose v2. Gunakan skrip kemudahan rasmi Docker dan bukannya pakej docker.io Ubuntu, yang tidak menyertakan pemalam Compose langsung:
curl -fsSL https://get.docker.com | sudo sh
sudo docker compose versionAnda sepatutnya melihat baris Docker Compose version v2.x. Jika docker compose version memaparkan docker: 'compose' is not a docker command, Docker Engine telah dipasang tetapi pemalam Compose tidak. Pasang pemalam tersebut daripada repositori Docker, jalankan semula skrip di atas, atau ikuti panduan asas Docker Compose kami, yang menyediakan kedua-duanya daripada repositori apt Docker sendiri.
Langkah 4, Klon mailcow dan jana konfigurasi
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
umask
sudo ./generate_config.shPastikan umask memaparkan 0022 terlebih dahulu, mailcow akan gagal dibina jika mask fail tidak tepat, dan shell root Ubuntu 24.04 yang baharu biasanya sudah memberikan 0022. Skrip tersebut kemudian akan meminta satu perkara yang penting: nama hos yang layak sepenuhnya (fully qualified hostname). Masukkan mail.example.com, nilai tersebut mestilah sepadan dengan rekod A dan PTR anda dengan tepat. Ia akan menulis mailcow.conf, iaitu fail persekitaran tunggal yang dibaca oleh keseluruhan stack. Buka fail tersebut jika anda perlu menukar port web (HTTP_PORT, HTTPS_PORT) atau melumpuhkan ClamAV pada pelayan yang kecil:
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 ialah tuil lain pada pelayan dengan RAM rendah: carian teks penuh (full-text search) adalah punca kedua penggunaan memori yang tinggi menurut dokumentasi mailcow, dan melangkauinya hanya menyebabkan anda kehilangan fungsi carian teks badan e-mel dalam webmail.
Biarkan HTTP_PORT=80 dan HTTPS_PORT=443 kecuali jika servis lain pada hos tersebut sudah menggunakannya, klien ACME terbina dalam mailcow memerlukan port 80 boleh dicapai dari internet untuk mendapatkan sijil. Inilah sebabnya anda tidak menjalankan persediaan nginx-plus-Certbot yang berasingan pada kotak yang sama; mailcow mengeluarkan dan memperbaharui TLS miliknya sendiri secara dalaman, dan servis kedua yang menduduki port 80/443 akan mengganggu proses tersebut. Perkara yang sama terpakai kepada mana-mana servis lain yang memerlukan antaramuka web awam, jadi binaan seperti Halcyon yang mengubah suai pustaka Jellyfin sebagai kedai video 90-an, yang memerlukan reverse proxy sendiri pada port 443, perlu diletakkan pada hos yang berbeza. Pengecualian diberikan kepada servis yang tidak memerlukan port web awam sama sekali: relay RustDesk yang dihoskan sendiri hanya mendengar pada julat port 21115 hingga 21119 miliknya sendiri, jadi ia boleh berkongsi pelayan yang sama dengan syarat anda mempunyai lebihan lebar jalur.
Langkah 5, Mulakan stack dan log masuk
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psProses pull akan memuat turun kira-kira dua dozen imej; tunggu beberapa minit. Apabila docker compose ps menunjukkan setiap kontena sebagai running (atau healthy), buka https://mail.example.com dalam pelayar web. Log masuk pentadbir lalai ialah nama pengguna admin, kata laluan moohoo. Tukar kata laluan tersebut dengan segera dalam UI pentadbir di bawah Access → Administrators. Jika pelayar memberi amaran NET::ERR_CERT_AUTHORITY_INVALID, sijil ACME belum dikeluarkan lagi; rujuk bahagian kegagalan ACME di bawah sebelum menganggapnya rosak. Sijil self-signed sementara adalah perkara biasa bagi satu atau dua minit pertama.
Langkah 6, Tambah domain, peti mel, dan terbitkan DKIM
Dalam UI pentadbir, buka halaman Mail Setup (Configuration → Mail Setup), dan di bawah tab Domains klik Add domain kemudian masukkan example.com. Seterusnya, di bawah Mailboxes, pilih Add mailbox untuk mencipta you@example.com berserta kata laluan. Ini merupakan peti mel berfungsi yang sudah boleh dicapai melalui IMAP.
Sekarang, kunci DKIM. Pergi ke Configuration → ARC/DKIM keys; mailcow mungkin telah menjana kunci apabila anda menambah domain tersebut. Jika belum, jana kunci di situ, pilih domain, kekalkan selector dkim, pilih 2048-bit, dan klik Add. Salin nilai TXT panjang yang dipaparkan dan terbitkannya sebagai:
dkim._domainkey.example.com. TXT "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqh...long-key...QAB"Halaman Domains dalam mailcow mempunyai butang DNS yang menyenaraikan setiap rekod yang diperlukan dan memaparkan tanda rait hijau atau pangkah merah berdasarkan apa yang telah diterbitkan. Gunakannya sebagai senarai semak anda, pastikan setiap baris berwarna hijau sebelum menguji kebolehhantaran. Baris DKIM yang berwarna merah selepas diterbitkan biasanya bermaksud kunci tersebut telah dipecahkan kepada ketulan TXT dengan cara yang salah; kunci 2048-bit adalah lebih panjang daripada had 255 aksara untuk satu rentetan TXT, jadi tampalkannya sebagai satu nilai logikal dan biarkan hos DNS anda memecahkannya kepada ketulan untuk anda.
Langkah 7, Uji kebolehhantaran dan sasarkan 10/10
Pergi ke mail-tester.com, salin alamat rawak yang dipaparkan, dan hantar mesej kepadanya daripada peti mel baharu anda. Log masuk ke SOGo webmail di https://mail.example.com/SOGo dan hantar e-mel dari sana. Kemudian, klik "Then check your score".
Sasarkan skor 10/10. Berikut adalah potongan markah yang biasa berlaku dan puncanya:
- SPF tidak sejajar, rekod
MX/SPF anda tiada atau IP penghantar tidak dilindungi. Semak semula TXT SPF anda. - Tandatangan DKIM tidak disahkan, TXT
dkim._domainkeytiada, masih dalam proses propagasi, atau rosak. Ini adalah kesilapan yang paling kerap berlaku. - Tiada PTR / PTR tidak sepadan, DNS berbalik (reverse DNS) tidak diselesaikan kepada
mail.example.com. Selesaikan perkara ini di pihak penyedia. - Tersenarai dalam senarai sekat (blocklist), reputasi IP anda sebelum ini. Minta penyahsenaraian atau minta IP yang lebih bersih.
Jangan hantar e-mel sebenar ke Gmail atau Outlook sehingga skor mencapai 10/10. Skor yang rendah ditambah dengan IP baharu adalah punca domain anda ditandakan sebagai spam pada hari pertama.
Langkah 8, Sambungkan klien e-mel sebenar
Halakan Thunderbird, Apple Mail, atau telefon anda ke pelayan menggunakan tetapan ini. Hos pelayan ialah mail.example.com untuk kesemuanya:
- IMAP: port 993, SSL/TLS (atau 143 dengan STARTTLS)
- SMTP submission: port 465, SSL/TLS (atau 587 dengan STARTTLS)
- Nama pengguna: alamat penuh,
you@example.com - Kata laluan: kata laluan peti mel yang anda tetapkan
Jangan sekali-kali menghantar e-mel klien melalui port 25, port tersebut hanya untuk komunikasi antara pelayan, mailcow tidak menawarkan penghantaran dengan pengesahan di sana, dan klien yang dihalakan ke port tersebut akan ditolak. Jika klien melaporkan Relay access denied, ia bermakna klien tersebut cuba menghantar melalui port 25 atau tanpa pengesahan; tukarkannya kepada 465 atau 587 dengan kelayakan peti mel anda.
Langkah 9, Sandarkan perkara yang benar-benar penting
mailcow menyediakan skrip sandaran yang mengambil syot kilas (snapshot) setiap volum yang mempunyai keadaan (stateful). Jalankan skrip ini ke cakera luaran atau storan jauh yang telah dilekapkan:
sudo MAILCOW_BACKUP_LOCATION=/opt/mailcow-backups \
./helper-scripts/backup_and_restore.sh backup allall menangkap enam perkara, dan kehilangan mana-mana daripadanya akan menyebabkan kehilangan data: vmail (peti mel sebenar), crypt (kunci yang menyahsulit vmail, tidak berguna tanpanya), mysql (MariaDB yang menyimpan domain, pengguna, alias dan tetapan), redis (keadaan baris gilir dan cache), rspamd (data spam/ham yang dipelajari), dan postfix (baris gilir mel). Ia berjalan di dalam bekas pembantu yang menulis arkib termampat, jadi sandaran kekal konsisten walaupun tindanan (stack) sedang aktif. Automatikkan proses ini dengan cron job harian, dan tambahkan --delete-days 14 untuk membuang set sandaran lama. Cron job yang berhenti berfungsi tidak akan memberikan amaran, jadi hantarkan status keluar (exit status) skrip ke tempat yang anda pasti akan perasan; pelayan ntfy yang dihoskan sendiri hanya memerlukan satu baris curl daripada entri cron yang sama untuk menghantar pemberitahuan kegagalan ke telefon anda pada malam kejadian. Pemulihan dilakukan menggunakan skrip yang sama dengan restore, yang menyenaraikan syot kilas dan membolehkan anda memilih data untuk dipulihkan. Sandaran yang tidak pernah anda uji pemulihannya hanyalah satu harapan, bukan sandaran; lakukan satu percubaan pemulihan pada VPS sementara.
Langkah 10, Kemas kini mengikut jadual
mailcow dikemas kini melalui skripnya sendiri, yang menarik kod baharu, melakukan migrasi mailcow.conf, memuat turun imej terlebih dahulu, dan memulakan semula kontena mengikut urutan:
cd /opt/mailcow-dockerized
sudo ./update.sh --check # reports whether an update exists, changes nothing
sudo ./update.sh # applies itLakukan sandaran terlebih dahulu (Langkah 9), kerana migrasi skema sukar untuk dipulihkan. Kemas kini kerap dikeluarkan dan merangkumi tampalan keselamatan untuk daemon yang terdedah kepada internet, jadi jangan biarkan pelayan mel dibiarkan tanpa kemas kini selama berbulan-bulan. Jika sesuatu kemas kini menyebabkan kontena menjadi tidak sihat, sudo docker compose logs --tail=50 <service>-mailcow akan menamakan daemon yang gagal untuk kembali beroperasi.
Nota mengenai pengukuhan sistem
mailcow menjalankan perkhidmatan netfilter miliknya sendiri (netfilter-mailcow) yang menyekat IP yang menyerang port mel dan webmail secara berterusan, jadi bahagian mel dilindungi secara lalai. Ini tidak melindungi SSH pada hos itu sendiri, yang masih terdedah dan terus menjadi sasaran serangan brute-force. Gandingkan binaan ini dengan Fail2ban yang memantau log pengesahan SSH dan log masuk berasaskan kunci sahaja. Pastikan UI pentadbir mailcow dilindungi dengan kata laluan yang kuat dan, sebaik-baiknya, tidak diakses dari internet awam atau diletakkan di sebalik VPN.
Mod kegagalan, dengan rentetan tepat
Baris gilir mel tidak menghantar mesej. Jalankan sudo docker compose exec postfix-mailcow postqueue -p, atau baca baris gilir mel pada UI pentadbir; entri kekal tertangguh dengan:
status=deferred (connect to gmail-smtp-in.l.google.com[142.250.x.x]:25: Connection timed out)Ini bermakna port keluar 25 disekat oleh pembekal anda (Langkah 1). Tiada konfigurasi yang dapat membaikinya, buka tiket sokongan. Ini bukan masalah DNS atau TLS; petunjuknya ialah perkataan timed out terhadap MX jauh pada port 25.
Gmail menandakan segala-galanya sebagai spam, atau menolaknya. Buka mesej tersebut dalam Gmail, pilih "Show original", dan baca hasil pengesahan. dkim=fail atau dkim=none bermakna rekod TXT dkim._domainkey anda hilang, rosak, atau belum disebarkan. Terbitkan semula apa yang dipaparkan oleh halaman ARC/DKIM dengan tepat dan tunggu sehingga TTL tamat. spf=fail bermakna rekod SPF/MX tidak meliputi IP anda. Penjajaran adalah segala-galanya; satu semakan yang gagal sudah cukup untuk menyebabkan e-mel anda masuk ke folder spam.
Ditolak oleh pembekal besar semasa sambungan. Mesej lantun atau log Postfix membawa penolakan PTR daripada Gmail:
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.Kod 550 5.7.25 bermakna DNS songsang (reverse DNS) hilang atau tidak sepadan. Tetapkan PTR untuk IP anda kepada mail.example.com di pihak pembekal (Langkah 2). Rekod hadapan (A) dan songsang (PTR) mestilah sepadan, dan kedua-duanya mesti menamakan hos yang sama seperti yang digunakan oleh mailcow untuk menyapa pelayan lain.
Pelayar menunjukkan amaran sijil yang tidak hilang. Kontena acme-mailcow gagal mendapatkan sijil sebenar. Semak lognya:
sudo docker compose logs acme-mailcow | tail -n 40Baris seperti Cannot validate any hostnames, skipping Let's Encrypt for 1 hour. atau kegagalan cabaran bermakna port 80 tidak boleh dicapai dari internet, atau rekod A tidak menghala ke pelayan ini. Sahkan mail.example.com diselesaikan kepada kotak pelayan tersebut, buka port 80 dan 443 melalui mana-mana firewall hos, dan pastikan tiada perisian lain yang mengikat port tersebut. Selepas membaiki puncanya, mulakan semula klien dengan sudo docker compose restart acme-mailcow daripada menunggu tempoh back-off selama sejam.
FAQ
Adakah berbaloi untuk mengendalikan pelayan e-mel sendiri?
Jika anda mahukan pemilikan data, alias tanpa had dan kawalan penuh, ya, mailcow memberikan anda tindanan (stack) profesional pada harga sebuah VPS. Namun, kebolehpenghantaran (deliverability) adalah tugas berterusan: reputasi IP, penjajaran DNS dan pemantauan senarai sekat tidak pernah berakhir sepenuhnya. Bagi alamat perniagaan yang kritikal di mana satu hari e-mel berada dalam folder spam boleh merugikan anda, penyedia terurus adalah pilihan yang pragmatik. Kendalikan sendiri jika anda lebih mementingkan kawalan berbanding kemudahan dan benar-benar mahu menyelenggaranya. Jika matlamat sebenar anda adalah untuk menyimpan data di luar pelayan pihak lain dan bukan khusus untuk e-mel, mulakan dengan servis yang tidak memerlukan pengesahan pihak ketiga: pustaka foto tidak mempunyai masalah kebolehpenghantaran, dan perbandingan PhotoPrism dan Immich kami merangkumi keperluan RAM serta arahan sandaran untuk binaan tersebut pada jenis VPS yang sama.
Bagaimanakah saya tahu jika port 25 keluar disekat?
Jalankan nc -vz -w 5 gmail-smtp-in.l.google.com 25 daripada pelayan. "succeeded!" bermaksud port tersebut terbuka; timed out selepas jeda bermaksud penyedia anda menyekatnya. Ini adalah punca paling biasa bagi pelayan yang dikendalikan sendiri boleh menerima e-mel tetapi tidak boleh menghantarnya, dan satu-satunya penyelesaian ialah penyedia anda membuka port tersebut; tiada tetapan tempatan yang boleh mengubahnya.
Mengapa e-mel saya masih masuk ke folder spam Gmail?
Hampir selalunya disebabkan oleh rantaian pengesahan yang rosak. Gunakan "Show original" dalam Gmail dan cari spf=pass, dkim=pass, dan dmarc=pass. dkim=fail menunjukkan rekod TXT dkim._domainkey yang hilang atau rosak; ketidakpadanan PTR atau IP baharu tanpa sejarah penghantaran juga menjejaskan reputasi. Dapatkan skor 10/10 di mail-tester.com terlebih dahulu, kemudian panaskan IP secara perlahan-lahan, dengan menghantar beberapa mesej sehari dan meningkatkannya secara berperingkat, bukannya menghantar volum besar pada hari pertama.
Apakah yang perlu saya sandarkan sebenarnya?
Jalankan backup_and_restore.sh backup all dan simpan keseluruhan set di luar pelayan. Ia menangkap vmail (peti mel), crypt (kunci untuk menyahsulitnya), pangkalan data MariaDB (domain, pengguna, alias, tetapan), Redis, data yang dipelajari Rspamd, dan baris gilir Postfix. Volum crypt sering diabaikan oleh pengguna; tanpanya, sandaran vmail hanyalah teks sifer yang tidak boleh dibaca. Uji pemulihan pada pelayan percubaan sekurang-kurangnya sekali.
Bolehkah saya menjalankan mailcow pada VPS 2 GB?
Tidak disyorkan. generate_config.sh menawarkan untuk menyahdayakan ClamAV di bawah sekitar 2.5 GiB, namun Rspamd, ClamAV, Dovecot dan MariaDB masih akan bersaing untuk mendapatkan memori, menyebabkan anda akan menggunakan swap dan mengalami OOM kills di bawah beban sebenar. Anggap 6 GiB berserta 1 GiB swap sebagai tahap minimum untuk pemasangan pengguna tunggal yang stabil, dan beralih kepada 8 GiB sebaik sahaja lebih daripada dua orang bergantung kepadanya.