VPS वर mailcow: Gmail स्वीकारेल असा ईमेल सर्व्हर
mailcow install करण्यापूर्वी outbound port 25 तपासा. तो block असल्यास ईमेल queue मधून बाहेर जात नाही. Gmail चा 550 5.7.25 PTR नकार टाळण्यासाठी DNS सेट करा.
तुम्ही काय तयार करणार आहात
तुमच्या मालकीच्या सर्व्हरवर एक संपूर्ण mail server: ईमेल पाठवण्यासाठी आणि स्वीकारण्यासाठी SMTP, फोन आणि laptop वरील मेल समक्रमित ठेवण्यासाठी IMAP, webmail client आणि येणाऱ्या-जाणाऱ्या प्रत्येक संदेशाचे मूल्यांकन करणारा spam filter. mailcow-dockerized मध्ये Postfix, Dovecot, Rspamd, SOGo webmail, MariaDB, Redis आणि ACME client हे सर्व एका Docker Compose stack मध्ये समाविष्ट आहेत. त्यामुळे software हा मुख्य अडथळा नाही. हे सेटअप अर्ध्या तासात सुरू होईल.
मुख्य अडचण त्याभोवतालच्या सर्व गोष्टींमध्ये आहे. नवीन mail server वर इंटरनेटवरील इतर सेवा सक्रियपणे विश्वास ठेवत नाहीत. त्यामुळे “ते कार्य करते” आणि “Gmail प्रत्येक संदेश शांतपणे टाकून देते” यांमधील फरक चार DNS records आणि एका IP-reputation setting वर अवलंबून असतो. यापैकी त्या setting वर तुमचे पूर्ण नियंत्रण नसेल. कोणतेही server भाड्याने घेण्यापूर्वी खालील पूर्वअटी वाचा. त्या वाचल्यानंतर reputation तयार करण्यासाठी लागणारा प्रयत्न योग्य नाही असे तुम्हाला वाटले, तर तो वैध निष्कर्ष आहे. 2026 मध्ये स्वतः host करण्यास प्रत्यक्षात योग्य असलेल्या गोष्टींचा आमचा आढावा email ला “यासाठी तुमची ठाम इच्छा असेल तरच” या गटात ठेवतो, आणि त्यामागे नेमकी हीच कारणे आहेत.
पूर्वतयारी म्हणजेच प्रकल्प
यापैकी एकही गोष्ट चुकली, तर पाठवलेले mail कधीही पोहोचणार नाही. कोणती अडचण लोकांना किती वेळा येते, त्यानुसार साधारण क्रम पुढीलप्रमाणे आहे:
Outbound port 25 उघडा असणे आवश्यक आहे. तुमचा server TCP port 25 द्वारे Gmail आणि Microsoft कडे mail पाठवतो. Spam रोखण्यासाठी मोठ्या प्रमाणावर VPS आणि cloud providers outbound 25 default ने block करतात. हा block शांतपणे लागू होतो. Boot वेळी कोणतीही error दिसत नाही, सर्व काही व्यवस्थित वाटते आणि mail फक्त queue मध्ये कायम पडून राहतो. काहीही install करण्यापूर्वी याची चाचणी घ्या. तो block असल्यास, provider कडे support ticket करून तो उघडण्याची विनंती करणे हाच उपाय आहे. काही providers जुनी accounts असलेल्या ग्राहकांसाठी तो उघडतात; काही providers तो कधीही उघडत नाहीत.
स्वच्छ IP आणि वापरण्यायोग्य reputation. Recycled VPS IPs वर आधीच्या tenant ने पाठवलेल्या spam मुळे blocklists वर नोंद असण्याची शक्यता असते. निर्णय घेण्यापूर्वी Spamhaus lookup किंवा mxtoolbox सारख्या सेवेद्वारे तुमचा IP तपासा. IP सूचीबद्ध असल्यास अशी rejections येतात की त्यावर code द्वारे उपाय करता येत नाही.
DNS वर नियंत्रण आणि योग्य PTR record. तुमच्या domain च्या zone मध्ये records जोडता आले पाहिजेत. तसेच server च्या IP साठी reverse DNS (PTR) असणे आवश्यक आहे आणि ते mail hostname कडे निर्देशित झाले पाहिजे. PTR जवळजवळ कधीही तुमच्या DNS panel मध्ये सेट करता येत नाही. तो IP च्या मालकाकडे व्यवस्थापित केला जातो. त्यामुळे तो तुमच्या VPS provider च्या control panel मधून किंवा support ticket द्वारे सेट करावा लागतो.
6 GiB RAM आणि 2 vCPU ही आरामदायी किमान क्षमता आहे. Private install साठी mailcow ची स्वतःची किमान आवश्यकता 6 GiB RAM आणि 1 GiB swap इतकी आहे. काही users त्यावर अवलंबून झाल्यावर 8 GiB RAM ठेवण्याचा सल्ला दिला जातो. साधारण 2.5 GiB पेक्षा कमी RAM असल्यास, kernel containers बंद करू लागणार नाही यासाठी generate_config.sh ClamAV virus scanner disable करण्याची सूचना देते. सुरुवातीला त्यासाठी 20 GB SSD द्या.
Bare IP ऐवजी DNS name वापरा. mail.example.com सारखा hostname निवडा. हे एकच नाव तुमचे MAILCOW_HOSTNAME, TLS certificate subject, PTR target आणि SMTP banner बनेल. सर्व ठिकाणी तेच नाव सुसंगतपणे वापरा.
पायरी 1: outbound port 25 खुला आहे हे सिद्ध करा
हे प्रथम करा. ही चाचणी अयशस्वी झाल्यास इतर सर्व प्रयत्न व्यर्थ ठरतील. नव्या VPS वरून प्रत्यक्ष mail server सोबत SMTP संभाषण सुरू करण्याचा प्रयत्न करा:
sudo apt update && sudo apt install -y netcat-openbsd
nc -vz -w 5 gmail-smtp-in.l.google.com 25यशस्वी परिणाम त्वरित दिसतो:
Connection to gmail-smtp-in.l.google.com (142.250.x.x) 25 port [tcp/smtp] succeeded!blocked port पूर्ण पाच सेकंद थांबतो आणि नंतर अयशस्वी होतो:
nc: connect to gmail-smtp-in.l.google.com port 25 (tcp) timed out: Operation now in progressहा timeout म्हणजे provider-side network filter लागू आहे. ही अडचण तुमच्या firewall मुळे नाही, त्यामुळे कोणताही स्थानिक बदल ती दूर करू शकत नाही. पुढील मजकुरासह ticket उघडा: "Please enable outbound TCP port 25 for my VPS at <IP>; I am running a legitimate mail server." याचा परिणाम "succeeded" येईपर्यंत mailcow install करू नका. inbound 25 म्हणजे इतर servers तुमच्यापर्यंत पोहोचतात तो मार्ग; तो स्वतंत्र मार्ग आहे आणि सामान्यतः खुला असतो. Providers outbound बाजूवर throttle लावतात.
पायरी 2, आता DNS records सेट करा
DNS बदल propagate होण्यासाठी वेळ लागतो. त्यामुळे installation करण्यापूर्वी शक्य असलेली सर्व माहिती publish करा. तुमचे domain example.com, mail host mail.example.com आणि IP 10.0.0.10 आहे असे गृहीत धरा. तुमच्या zone मध्ये पुढील record तयार करा:
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 record चा अर्थ असा आहे: “या domain साठी फक्त माझ्या MX ला mail पाठवण्याची परवानगी आहे; इतर सर्वांना नकार द्या.” तुमच्या स्वतःच्या mail ला reject न करता reports monitor करता यावेत यासाठी DMARC ची सुरुवात p=none पासून करा. Alignment सिद्ध झाल्यानंतर ते p=quarantine आणि त्यानंतर p=reject इतके कडक करा. दोन records मुद्दाम अद्याप बाकी ठेवले आहेत: DKIM, जो mailcow तुमच्यासाठी पायरी 6 मध्ये generate करतो, आणि PTR, जो तुम्ही आता provider च्या panel मध्ये सेट कराल.
10.0.0.10 साठी PTR (reverse DNS) mail.example.com वर सेट करा. MAILCOW_HOSTNAME हे त्याचे अचूक value आहे. हा असा एकमेव record आहे जो बहुतेक लोक विसरतात आणि मोठे providers त्यावर mail reject करतात. तुमच्या panel मध्ये rDNS field नसल्यास ticket raise करा.
पायरी 3, Docker स्थापित करा
mailcow साठी Compose v2 plugin असलेले Docker Engine आवश्यक आहे. Ubuntu च्या docker.io package ऐवजी Docker ची अधिकृत convenience script वापरा. Ubuntu च्या package मध्ये Compose plugin नसतो:
curl -fsSL https://get.docker.com | sudo sh
sudo docker compose versionतुम्हाला Docker Compose version v2.x ओळ दिसली पाहिजे. docker compose version ने docker: 'compose' is not a docker command दाखवले, तर Docker Engine स्थापित आहे; मात्र Compose plugin स्थापित नाही. Docker च्या repository मधून plugin स्थापित करा, वरील script पुन्हा चालवा किंवा आमचे Docker Compose basics मार्गदर्शक वापरा. या मार्गदर्शकात Docker च्या स्वतःच्या apt repository मधून दोन्ही घटक स्थापित केले जातात.
पायरी 4, mailcow क्लोन करा आणि कॉन्फिगरेशन तयार करा
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
umask
sudo ./generate_config.shumask चालवल्यावर प्रथम 0022 दिसते का ते तपासा. चुकीचा file mask असल्यास mailcow build करण्यास नकार देते. नव्या Ubuntu 24.04 root shell मध्ये 0022 आधीच सेट असते. त्यानंतर script एक महत्त्वाची माहिती विचारते: fully qualified hostname. mail.example.com प्रविष्ट करा. ही value तुमच्या A record आणि PTR शी तंतोतंत जुळली पाहिजे. यामुळे mailcow.conf लिहिली जाते. संपूर्ण stack हीच एक environment file वाचतो. Web ports (HTTP_PORT, HTTPS_PORT) बदलायचे असल्यास किंवा लहान सर्व्हरवर ClamAV अक्षम करायचा असल्यास ही file उघडा:
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 boxकमी RAM असलेल्या सर्व्हरवर SKIP_FTS=y हा दुसरा महत्त्वाचा पर्याय आहे. mailcow च्या दस्तऐवजात full-text search हा दुसरा मोठा memory hog असल्याचे नमूद केले आहे. तो वगळल्यास webmail मधील body-text search उपलब्ध राहणार नाही.
होस्टवर दुसरी सेवा आधीपासून त्यांचा वापर करत नसल्यास HTTP_PORT=80 आणि HTTPS_PORT=443 तसेच ठेवा. प्रमाणपत्र मिळवण्यासाठी mailcow च्या built-in ACME client ला इंटरनेटवरून port 80 reachable असणे आवश्यक आहे. म्हणून त्याच सर्व्हरवर वेगळे nginx-plus-Certbot सेटअप चालवू नका. mailcow स्वतःचे TLS अंतर्गत जारी आणि renew करते; 80/443 वर दुसरी सेवा listening असल्यास ही प्रक्रिया अयशस्वी होते. सार्वजनिक web front end आवश्यक असलेल्या इतर सेवांनाही हेच लागू होते. त्यामुळे Jellyfin library ला 90s video store प्रमाणे reskin करणारा Halcyon सारखा build, ज्याला 443 वर स्वतःचा reverse proxy हवा असतो, वेगळ्या होस्टवर ठेवावा. सार्वजनिक web port ची आवश्यकता नसलेली सेवा हा अपवाद आहे. self-hosted RustDesk relay फक्त स्वतःच्या 21115 ते 21119 या range वर listening करते. त्यामुळे पुरेशी bandwidth उपलब्ध असल्यास ती हाच सर्व्हर share करू शकते.
पायरी 5, stack सुरू करा आणि लॉग इन करा
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psया pull प्रक्रियेत साधारण दोन डझन images fetch होतात; यासाठी काही मिनिटे द्या. docker compose ps मध्ये प्रत्येक container running (किंवा healthy) दिसू लागल्यावर browser मध्ये https://mail.example.com उघडा. default admin login साठी username admin आणि password moohoo आहे. Access → Administrators अंतर्गत admin UI मध्ये हा password त्वरित बदला. Browser मध्ये NET::ERR_CERT_AUTHORITY_INVALID अशी warning दिसल्यास, ACME certificate अद्याप issue झालेले नाही. ते broken आहे असे गृहीत धरण्यापूर्वी खालील ACME failure विभाग पहा; पहिल्या एक-दोन मिनिटांसाठी self-signed placeholder असणे सामान्य आहे.
पायरी 6, डोमेन आणि mailbox जोडा आणि DKIM प्रकाशित करा
Admin UI मध्ये Mail Setup पेज उघडा (Configuration → Mail Setup). Domains टॅबखाली Add domain वर क्लिक करा आणि example.com प्रविष्ट करा. त्यानंतर Mailboxes अंतर्गत Add mailbox निवडा आणि password सह you@example.com तयार करा. हा mailbox IMAP द्वारे आधीपासून वापरता येतो.
आता DKIM key तयार करा. Configuration → ARC/DKIM keys येथे जा. डोमेन जोडताना mailcow ने key आधीच तयार केलेली असू शकते. तसे नसल्यास, तेथे key तयार करा, domain निवडा, selector dkim तसाच ठेवा, 2048-bit निवडा आणि Add वर क्लिक करा. दिसणारी मोठी TXT value कॉपी करून ती पुढीलप्रमाणे प्रकाशित करा:
dkim._domainkey.example.com. TXT "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqh...long-key...QAB"mailcow च्या Domains पेजवर DNS बटन असते. त्यात अपेक्षित असलेला प्रत्येक record दिसतो आणि प्रत्यक्षात प्रकाशित केलेल्या record समोर हिरवा tick किंवा लाल cross दिसतो. ही यादी checklist म्हणून वापरा. Deliverability चाचणी करण्यापूर्वी प्रत्येक row हिरवी असल्याची खात्री करा. प्रकाशित केल्यानंतर DKIM row लाल दिसत असल्यास, key TXT chunks मध्ये चुकीच्या पद्धतीने विभागली गेली असण्याची शक्यता असते. 2048-bit key एका TXT string साठीच्या 255-character मर्यादेपेक्षा मोठी असते. त्यामुळे ती एकाच logical value म्हणून paste करा आणि तुमच्या DNS host ला ती स्वतः chunks मध्ये विभागू द्या.
पायरी 7, डिलिव्हरेबिलिटी तपासा आणि 10/10 मिळवा
mail-tester.com वर जा. तेथे दाखवलेला यादृच्छिक पत्ता कॉपी करा आणि तुमच्या नवीन mailbox मधून त्या पत्त्यावर संदेश पाठवा. https://mail.example.com/SOGo येथे SOGo webmail मध्ये लॉग इन करून तेथून संदेश पाठवा. त्यानंतर "Then check your score" वर क्लिक करा.
10/10 मिळवण्याचे लक्ष्य ठेवा. सामान्यतः गुण कमी होण्याची कारणे पुढीलप्रमाणे आहेत:
- SPF जुळत नाही, तुमचा
MX/SPF record उपलब्ध नाही किंवा त्यात sending IP समाविष्ट नाही. SPF TXT पुन्हा तपासा. - DKIM signature पडताळली जात नाही,
dkim._domainkeyTXT उपलब्ध नाही, त्याचे propagation अद्याप पूर्ण झालेले नाही किंवा त्यातील मजकूर बिघडला आहे. ही सर्वात सामान्य चूक आहे. - PTR उपलब्ध नाही / PTR जुळत नाही, reverse DNS चे resolution
mail.example.comकडे होत नाही. याचे निराकरण provider कडे करा. - Blocklist वर नोंद आहे, तुमच्या IP ची पूर्वीची reputation याला कारणीभूत आहे. Delisting ची विनंती करा किंवा अधिक चांगली reputation असलेला IP मागा.
स्कोअर 10/10 दिसेपर्यंत Gmail किंवा Outlook वर वास्तविक mail पाठवू नका. नवीन IP सोबत कमी स्कोअर असल्यास पहिल्याच दिवशी तुमचा domain flag होऊ शकतो.
पायरी 8, प्रत्यक्ष mail client कनेक्ट करा
ही settings वापरून Thunderbird, Apple Mail किंवा तुमचा फोन server शी कनेक्ट करा. सर्वांसाठी server host `mail.example.com` आहे:
- IMAP: port 993, SSL/TLS (किंवा STARTTLS सह 143)
- SMTP submission: port 465, SSL/TLS (किंवा STARTTLS सह 587)
- Username: पूर्ण address, `
you@example.com` - Password: तुम्ही सेट केलेला mailbox password
client mail कधीही port 25 वरून पाठवू नका. हा port केवळ server-to-server mail साठी आहे. mailcow येथे authenticated submission देत नाही. त्यामुळे port 25 कडे निर्देश केलेला client नाकारला जातो. client ने `Relay access denied` दाखवले, तर तो port 25 वर किंवा authentication शिवाय mail पाठवण्याचा प्रयत्न करत आहे. तो mailbox credentials वापरून 465 किंवा 587 वर बदला.
पायरी 9: प्रत्यक्षात महत्त्वाच्या गोष्टींचा बॅकअप घ्या
mailcow मध्ये एक backup script उपलब्ध आहे. ती प्रत्येक stateful volume चा snapshot घेते. ती external disk वर किंवा mounted remote वर चालवा:
sudo MAILCOW_BACKUP_LOCATION=/opt/mailcow-backups \
./helper-scripts/backup_and_restore.sh backup allall सहा गोष्टींचा बॅकअप घेते. त्यांपैकी कोणतीही गोष्ट गमावल्यास data गमावला जातो: vmail (प्रत्यक्ष mailboxes), crypt (vmail decrypt करणाऱ्या keys; याशिवाय त्यांचा उपयोग नाही), mysql (domains, users, aliases आणि settings साठवणारा MariaDB), redis (queue आणि cache state), rspamd (शिकलेला spam/ham data) आणि postfix (mail queue). ही प्रक्रिया helper container मध्ये चालते आणि compressed archives लिहिते. त्यामुळे stack चालू असतानाही backups सुसंगत राहतात. ही प्रक्रिया nightly cron job द्वारे स्वयंचलित करा आणि जुने sets हटवण्यासाठी --delete-days 14 जोडा. काम करणे थांबवलेली cron job कोणतीही सूचना न देता अपयशी ठरते. त्यामुळे script चा exit status तुम्हाला प्रत्यक्ष लक्षात येईल अशा ठिकाणी पाठवा; self-hosted ntfy server त्याच cron entry मधून एक ओळीतला curl request स्वीकारतो आणि अपयश घडलेल्या रात्रीच तुमच्या phone वर सूचना पाठवतो. Restore साठी restore सह हीच script वापरा. ती snapshots ची यादी दाखवते आणि परत आणायची सामग्री निवडण्याची परवानगी देते. ज्या backup चे test-restore कधीही केलेले नाही, तो backup नसून केवळ आशा आहे. scratch VPS वर एक dry run करा.
पायरी 10, नियोजित वेळापत्रकानुसार अद्ययावत करा
mailcow स्वतःच्या script द्वारे updates करतो. हे script नवीन code आणते, mailcow.conf चे migration करते, images आधीच fetch करते आणि containers क्रमाने restart करते:
cd /opt/mailcow-dockerized
sudo ./update.sh --check # reports whether an update exists, changes nothing
sudo ./update.sh # applies itसर्वप्रथम backup घ्या (पायरी 9), कारण schema migration पूर्ववत करणे कठीण असते. Updates वारंवार release होतात आणि त्यात internet-facing daemons साठी security fixes असतात. त्यामुळे mail server अनेक महिने update न करता ठेवू नका. एखाद्या update नंतर container unhealthy राहिल्यास, sudo docker compose logs --tail=50 <service>-mailcow पुन्हा सुरू न झालेला daemon दर्शवते.
सुरक्षा मजबूत करण्याबाबत टीप
mailcow स्वतःची netfilter सेवा (netfilter-mailcow) चालवते. ही सेवा mail आणि webmail ports वर वारंवार प्रयत्न करणारे IPs प्रतिबंधित करते. त्यामुळे mail बाजूचे संरक्षण सुरुवातीपासूनच उपलब्ध असते. मात्र, यामुळे host वरील SSH चे संरक्षण होत नाही. SSH अजूनही उघडे असते आणि त्यावर brute-force प्रयत्न होत राहतात. या रचनेस SSH auth log चे निरीक्षण करणारे Fail2ban आणि key-only login सोबत वापरा. mailcow admin UI साठी मजबूत password ठेवा. शक्य असल्यास ते public internet पासून दूर ठेवा किंवा VPN मागे ठेवा.
अयशस्वी स्थिती आणि त्यांचे अचूक संदेश
Mail queues मध्ये संदेश साचतात आणि कधीही वितरित होत नाहीत. sudo docker compose exec postfix-mailcow postqueue -p चालवा किंवा admin UI मधील mail queue पाहा; entries deferred स्थितीत अशा संदेशासह राहतात:
status=deferred (connect to gmail-smtp-in.l.google.com[142.250.x.x]:25: Connection timed out)याचा अर्थ provider ने outbound port 25 अवरोधित केला आहे (Step 1). कोणतीही configuration बदलून हे दुरुस्त होणार नाही; support ticket उघडा. ही DNS किंवा TLS समस्या नाही. Remote MX शी port 25 वर कनेक्ट करताना दिसणारा timed out हा याचा स्पष्ट संकेत आहे.
Gmail प्रत्येक संदेशाला spam म्हणून चिन्हांकित करते किंवा तो bounce करते. Gmail मध्ये संदेश उघडा, "Show original" निवडा आणि authentication results वाचा. dkim=fail किंवा dkim=none याचा अर्थ तुमचा dkim._domainkey TXT record उपलब्ध नाही, चुकीचा आहे किंवा अद्याप propagate झालेला नाही. ARC/DKIM पृष्ठावर दिसणारे अचूक मूल्य पुन्हा publish करा आणि TTL पूर्ण होईपर्यंत प्रतीक्षा करा. spf=fail याचा अर्थ SPF/MX records मध्ये तुमचा IP समाविष्ट नाही. Alignment अत्यंत महत्त्वाचे आहे; एक check अपयशी ठरला तरी संदेश spam मध्ये जाऊ शकतो.
कनेक्ट करताना मोठ्या providers कडून नकार मिळतो. Bounces किंवा Postfix logs मध्ये Gmail चा PTR rejection संदेश दिसतो:
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 code म्हणजे reverse DNS उपलब्ध नाही किंवा चुकीचा आहे. Provider कडे तुमच्या IP साठी PTR म्हणून mail.example.com सेट करा (Step 2). Forward (A) आणि reverse (PTR) records परस्पर जुळले पाहिजेत. तसेच mailcow इतर servers शी ज्या hostname ने अभिवादन करते, त्याच hostname चे नाव दोन्ही records मध्ये असले पाहिजे.
Browser मध्ये certificate warning दिसते आणि ती कधीही नाहीशी होत नाही. acme-mailcow container ला वैध certificate मिळवता आले नाही. त्याचा log तपासा:
sudo docker compose logs acme-mailcow | tail -n 40Cannot validate any hostnames, skipping Let's Encrypt for 1 hour. सारखी ओळ किंवा challenge failure म्हणजे port 80 इंटरनेटवरून पोहोचण्यायोग्य नाही किंवा A record या server कडे निर्देश करत नाही. mail.example.com box कडे resolve होते का ते तपासा, कोणत्याही host firewall मधून 80 आणि 443 खुले करा आणि हे ports दुसरी कोणतीही सेवा bind करत नाही याची खात्री करा. कारण दुरुस्त केल्यानंतर एक तासाचा back-off संपण्याची वाट पाहू नका; sudo docker compose restart acme-mailcow वापरून client restart करा.
FAQ
Self-hosting email खरोखर उपयुक्त आहे का?
तुम्हाला डेटावर मालकी, अमर्याद aliases आणि संपूर्ण नियंत्रण हवे असल्यास, होय. VPS च्या किमतीत mailcow व्यावसायिक दर्जाचा stack उपलब्ध करून देतो. मात्र deliverability सांभाळणे हे सततचे काम आहे: IP reputation, DNS alignment आणि blocklist monitoring यांचा शेवट होत नाही. एखाद्या व्यक्तीच्या spam folder मध्ये तुमचा संदेश एक दिवस राहिल्याने व्यवसायाचे गंभीर नुकसान होत असेल, तर managed provider निवडणे हा व्यवहार्य पर्याय आहे. सोयीपेक्षा नियंत्रण महत्त्वाचे वाटत असेल आणि तुम्ही ही सेवा नियमितपणे सांभाळणार असाल, तर self-hosting करा. तुम्हाला विशेषतः email नव्हे, तर तुमचा डेटा इतरांच्या servers वरून दूर ठेवायचा असेल, तर अशा सेवेपासून सुरुवात करा जिच्यावर इतर कोणालाही नियंत्रण नसते: photo library ला deliverability ची समस्या नसते. त्याच प्रकारच्या VPS वर ही रचना करण्यासाठी आवश्यक RAM floors आणि backup commands आमच्या PhotoPrism आणि Immich तुलनेत दिल्या आहेत.
outbound port 25 blocked आहे की नाही हे कसे समजेल?
server वरून nc -vz -w 5 gmail-smtp-in.l.google.com 25 चालवा. "succeeded!" दिसल्यास port open आहे. pause नंतर timed out दिसल्यास provider ने तो block केला आहे. self-hosted server mail receive करू शकतो पण mail send करू शकत नाही, याचे हे सर्वात सामान्य कारण आहे. यावरील एकमेव उपाय म्हणजे provider ने port open करणे; कोणतीही local setting ते बदलू शकत नाही.
माझे mail अजूनही Gmail च्या spam folder मध्ये का जाते?
बहुतेक वेळा authentication chain मध्ये बिघाड झालेला असतो. Gmail मध्ये "Show original" वापरा आणि spf=pass, dkim=pass आणि dmarc=pass शोधा. dkim=fail आढळल्यास dkim._domainkey TXT record अनुपस्थित किंवा चुकीचा असल्याचे सूचित होते. PTR mismatch किंवा sending history नसलेला नवीन IP यांचाही परिणाम होतो. प्रथम mail-tester.com वर 10/10 मिळवा. त्यानंतर IP हळूहळू warm up करा: दररोज काही messages पासून सुरुवात करून संख्या वाढवा. पहिल्याच दिवशी मोठ्या प्रमाणात messages पाठवू नका.
नेमक्या कोणत्या गोष्टींचा backup घ्यावा?
backup_and_restore.sh backup all चालवा आणि संपूर्ण संच server बाहेर सुरक्षित ठेवा. यात vmail (mailboxes), crypt (mailboxes decrypt करणाऱ्या keys), MariaDB database (domains, users, aliases आणि settings), Redis, Rspamd चा learned data आणि Postfix queue यांचा समावेश होतो. crypt volume कडे अनेकदा दुर्लक्ष होते. ते नसल्यास vmail backup वाचता येत नाही, कारण तो unreadable ciphertext असतो. किमान एकदा scratch box वर restore करून तपासा.
2 GB VPS वर mailcow चालवता येईल का?
आरामात चालणार नाही. सुमारे 2.5 GiB पेक्षा कमी memory असल्यास generate_config.sh ClamAV disable करण्याचा पर्याय देतो. तरीही Rspamd, ClamAV, Dovecot आणि MariaDB memory साठी स्पर्धा करतात. त्यामुळे प्रत्यक्ष load असताना swap आणि OOM kills होण्याची शक्यता असते. स्थिर single-user install साठी 6 GiB memory आणि 1 GiB swap ही किमान मर्यादा माना. दोनपेक्षा अधिक लोक त्यावर अवलंबून होताच 8 GiB वर upgrade करा.