- email मूल रूप से एक open system है, और 2026 में delivery समस्याओं और spam को संभालते हुए इसे घर या VPS पर चलाया जा सकता है, ताकि mail को कुछ बड़ी कंपनियों के भरोसे न छोड़ना पड़े
- घर पर चलाने के लिए blacklist में न होने वाला static IPv4, CGNAT का उपयोग न होना, PTR record बदलने की अनुमति, और
25·143·465·587·993 ports खुले होना ज़रूरी है; अगर ये शर्तें पूरी न हों तो VPS बेहतर है
- SPF·DKIM·DMARC·MX·PTR को सही तरह सेट करना चाहिए और mail-tester.com से delivery स्थिति जांचनी चाहिए; थोड़े समय के internet outage पर भी sending server delivery दोबारा कोशिश करता है
- Rspamd के GPT plugin को local
Gemma 4 12B QAT model के साथ जोड़ने पर निजी mail को बाहरी LLM API पर भेजे बिना spam probability और उसके फैसले का कारण बनाया जा सकता है
- docker-mailserver और Thunderbird·webmail clients से setup की बाधा कम हो सकती है, लेकिन operator को backup·recovery·remote access·updates की ज़िम्मेदारी खुद लेनी होगी और recovery process कम-से-कम एक बार ज़रूर test करनी चाहिए
घर और VPS में से चुनाव
- आम तौर पर VPS की सिफारिश की जाती है, लेकिन अगर home internet नीचे दी गई सभी शर्तें पूरी करता है तो घर से भी mail server चलाया जा सकता है
- blacklist में दर्ज न किया गया static IPv4 address
- ऐसी connection जो CGNAT के पीछे न हो
- ISP support आदि के ज़रिए IP के PTR record को बदलने की अनुमति
- सामान्य mail server ports
25, 143, 465, 587, 993 खोल सकने वाला environment
- server थोड़ी देर के लिए बंद हो जाए तो भी sender side mail server delivery दोबारा कोशिश करता है, इसलिए incoming mail तुरंत नहीं खोती
- अगर दिन भर में internet downtime 40% से कम हो तो यह सामान्य रूप से काम कर सकता है
mail server software
domain और DNS settings
- IP की तरह domain के लिए भी पहले spam blacklist में दर्ज होने की स्थिति जांचनी चाहिए
- सामान्य sending और receiving के लिए नीचे दिए गए DNS records ज़रूरी हैं
- SPF: यह तय करता है कि domain की ओर से कौन-से servers mail भेज सकते हैं; सामान्य value के रूप में
v=spf1 mx a ~all इस्तेमाल किया जा सकता है
- DKIM: यह outgoing mail header में cryptographic signature जोड़ता है, और server द्वारा बताए गए नाम और public key value को domain पर दर्ज किया जाता है
- DMARC: यह SPF और DKIM को बढ़ाकर domain spoofing रोकता है; value स्पष्ट न हो तो DMARC generator का उपयोग किया जा सकता है
- MX: यह बताता है कि दूसरे servers mail किस जगह deliver करें। आम तौर पर
mail.yourdomain.com के A record को server IP से जोड़ा जाता है और MX priority 10 की value के रूप में वही hostname सेट किया जाता है
- PTR record केवल ISP या VPS provider ही सेट कर सकते हैं, और server IP का reverse lookup
mail.yourdomain.com जैसे वास्तविक mail server hostname पर जाना चाहिए
- कुछ servers automatic service discovery के लिए अतिरिक्त records की सिफारिश करते हैं, लेकिन SPF·DKIM·DMARC·MX·PTR बुनियादी configuration हैं
- setup के बाद mail-tester.com पर records, server behavior, और mail delivery स्थिति की जांच करना recommended है
local LLM से spam filtering
- पारंपरिक open source spam filtering IP·domain blacklists, Spamhaus जैसी external services, और keyword search पर निर्भर रही है, और इसकी कम effectiveness self-hosting छोड़ने का एक बड़ा कारण थी
- पिछले 2 वर्षों में local LLM classification self-hosting environment में spam समस्या सुलझाने के विकल्प के रूप में उभरी है
- Rspamd blacklist, IP·DNS checks, और keyword detection के अलावा GPT plugin के ज़रिए email को spam है या नहीं, यह LLM से classify करवा सकता है
- निजी mail को बाहरी LLM API पर भेजने के बजाय Gemma 4 12B QAT को local रूप से चलाया जाता है
- यह GPU या CPU पर चल सकता है और कम-से-कम 7GB RAM या VRAM चाहिए
- यह multilingual support देता है, इसलिए email classification में इस्तेमाल किया जा सकता है
local model चलाना और Rspamd से जोड़ना
- अगर local LLM पहली बार configure कर रहे हैं, तो Windows·Linux·macOS के लिए Unsloth की llama.cpp guide देख सकते हैं
- Linux और macOS में
llama.cpp को नीचे दिए गए command से install करें
curl -LsSf https://llama.app/install.sh | sh
- Windows में नीचे दिया गया command इस्तेमाल करें
winget install llama.cpp
- model server को नीचे की तरह चलाया जाता है, और
localhost:8080 पर chat interface देखा जा सकता है
llama serve -hf unsloth/gemma-4-12B-it-qat-GGUF:UD-Q4_K_XL --reasoning off -fa on -c 16000 --temp 0.7
- Rspamd के
/etc/rspamd/local.d/gpt.conf में type = "openai" और local /v1 endpoint सेट करने पर OpenAI-compatible interface के ज़रिए model को जोड़ा जा सकता है
- model को
unsloth/gemma-4-12B-it-qat-GGUF:UD-Q4_K_XL पर सेट किया जाता है
- maximum output tokens
100, temperature 0.1, और timeout 30 सेकंड रखा जाता है
- GPU के बिना चल रहे LLM server में timeout बढ़ाया जा सकता है
- response को JSON के रूप में parse किया जाता है और
spam नहीं बल्कि probability key मांगी जाती है
- prompt header·subject·body का analysis करके
0.0~1.0 के बीच spam probability और केवल छोटा-सा फैसला-कारण JSON में लौटाने का निर्देश देता है
- recipient-specific conversation context feature Redis में हाल की mails के labels, प्रमुख senders, और 512-character summary को store करता है, और 5 से अधिक होने पर उन्हें classification prompt में शामिल करता है
- scope recipient-specific mailbox
user है
- message summary retention period
14 दिन है, और Redis key lifetime 30 दिन है
- यह बिना external calls के local रूप से काम करता है
- spam mail के लिए fear-based marketing, unwanted commercial content, और suspicious internationalized domains जैसे आधारों पर high probability लौटाई जा सकती है
- सामान्य technical test mail के लिए suspicious links या promotional phrases न होने के कारण low probability लौटाई जा सकती है
- Rspamd के web interface में graph और data देखे जा सकते हैं, और mail paste करके expected classification result test किया जा सकता है
mail client चुनना
- desktop पर Thunderbird Outlook का विकल्प बनने वाला एक feature-rich open source client है
- यह ज़रूरी basic features और पर्याप्त search functionality देता है
- इसका Android app भी उपलब्ध है
- 3 साल इस्तेमाल करने पर कोई समस्या नहीं आई
- अगर webmail चाहिए तो नीचे दिए गए विकल्प इस्तेमाल किए जा सकते हैं
maintenance और operational responsibility
- docker-mailserver जैसे आधुनिक mail server solutions security fixes और production environment को तोड़े बिना automatic updates को ध्यान में रखकर बनाए गए हैं
- self-hosting data control तो देता है, लेकिन backup, recovery, remote access, और updates की ज़िम्मेदारी operator पर डाल देता है
- backup न हो तो पूरा data खो सकता है, इसलिए पर्याप्त backup plan बनाना चाहिए और recovery process कम-से-कम एक बार test करनी चाहिए
- अगर आप इन शर्तों और operational responsibility को संभाल सकते हैं, तो छोटे server outages के बावजूद mail चलाया जा सकता है, और data sovereignty को महत्व देने वाले users self-hosting आज़मा सकते हैं
1 टिप्पणियां
Lobste.rs की राय
Fastmail इस्तेमाल करके मैं सारी झंझटों से बच रहा हूँ। कौन-सी झंझटों से बच रहा हूँ, यह पढ़ना मज़ेदार था
अगर inbox महत्वपूर्ण है, तो Migadu, Simplymail, Fastmail जैसी बेहतरीन hosted mailbox services मौजूद हैं, इसलिए खुद चलाने का मन नहीं करता। मज़े या गैर-ज़रूरी उपयोग के लिए यह संभव है
Gmail पर निर्भरता की समस्या को साबित करते हुए, इस समय Gmail Lobsters password reset mails को spam के रूप में ब्लॉक कर रहा है
logs में दिखता है: “Gmail has detected that this message is likely 550-5.7.1 unsolicited mail. To reduce the amount of spam sent to Gmail, this 550-5.7.1 message has been blocked.”, और सोच रहा हूँ इसे Google को बताने का कोई तरीका है या नहीं
मुझे लगा mailing list gateway lobste.rs की तरफ़ टूटा हुआ है, इसलिए मैंने subscription हटा दी, लेकिन वैसे भी मैं उसे ज़्यादा नहीं पढ़ता था और अब वेबसाइट को ज़्यादा पसंद करता हूँ
घर से mail खुद चलाने का विचार अच्छा है, लेकिन shifting के समय दिक्कत होती है। shifting के दौरान भी महत्वपूर्ण mails आते रहते हैं, इसलिए backup MX अकेले काफ़ी नहीं है
इसे implement किया जा सकता है, लेकिन shifting अपने-आप में ही काफ़ी stressful होती है, इसलिए checklist में mail migration procedure भी जोड़ना नहीं चाहता। इस दौरान blog या hidden DNS master का रुक जाना ठीक है
लगभग 15 साल पहले मैंने एक सस्ते VM पर mail server शिफ्ट किया था, और तब से वह लगातार स्थिर चल रहा है। अगर आप कहीं स्थायी रूप से बसे हों, blocklist में न आने वाला static IP हो, और business-grade connection इस्तेमाल कर सकें, तो यह ठीक रह सकता है
इसके अलावा SMTP में retry protocol का ही हिस्सा है, इसलिए अगर कोई server 24 घंटे से पहले retry बंद कर देता है, तो वह संबंधित spec का पालन नहीं कर रहा। mailbox न होने या capacity पार होने जैसी स्थिति में server के explicit reject से अलग, SMTP उम्मीद से ज़्यादा मज़बूत है
mail खुद चलाने में मुश्किल हिस्सा incoming spam नहीं, बल्कि यह है कि outgoing के लिए ज़रूरी सारे इंतज़ाम करने के बाद भी बड़े mail providers भेजे गए mails को spam में डाल देते हैं
किसी व्यक्ति या घर से भेजे जाने वाले कम volume के कारण IP पर positive reputation नहीं बनती, इसलिए एक बार अगर Gmail आदि के inbox में पहुँचना बंद हो जाए, तो उसे व्यवहारिक रूप से ठीक करना बहुत कठिन हो जाता है
हालाँकि Amazon SES जैसी service के ज़रिए relay करें तो setup आसान हो सकता है और delivery problems भी ख़त्म हो सकती हैं। लेकिन अगर आप राजनीतिक कारणों या data sovereignty की वजह से self-host कर रहे हैं, तो यह स्वीकार्य समाधान न लगे
अपने mail server की सबसे अच्छी बात यह है कि spam filtering करने की ज़रूरत नहीं पड़ती। कभी-कभी junk mail आ जाता है, लेकिन यह भरोसा बेहतर लगता है कि कोई भी मुझे mail भेज सकता है
सिर्फ spam folder देख लेना काफ़ी नहीं है। बड़ी tech companies बिना किसी खास वजह के mails को चुपचाप discard भी कर देती हैं, और Gmail की receive success rate लगभग 90% है, इसलिए दूसरे बड़े providers से आए mails भी 10% तक गायब हो जाते हैं। self-hosted mail में कभी reception fail नहीं हुआ
दूसरी तरफ़, दूसरे बड़े service accounts पर mail भेजने के लिए उस तरफ़ का account अभी भी चाहिए, लेकिन contact address के रूप में मैं हमेशा self-hosted address ही देता हूँ। मैं यह आज़माना चाहता हूँ कि बड़े providers को सिर्फ sending के लिए इस्तेमाल करूँ और MX अपनी server पर point करूँ
https://xmox.nl को सेट करना बहुत आसान था
मैं वेबसाइट की mailing list खुद चला रहा हूँ। subscribers बस कुछ ही हैं, लेकिन mails ठीक से पहुँचते हैं
निजी email तक खुद चलाने का इरादा नहीं है
कुछ साल पहले मैंने Hetzner VPS पर https://modoboa.org/ इंस्टॉल किया था, लेकिन कई बार upgrade fail होने के बाद लगभग हार मान ली। अब भी इसे सिर्फ इसलिए चलाए हुए हूँ क्योंकि ज़्यादातर चीज़ें अभी भी काम करती हैं, लेकिन यह long-term sustainable setup नहीं है, और अगला विकल्प क्या होगा यह अभी तय नहीं किया है
Steam जैसी कुछ two-factor authentication codes inbox में बहुत देर से पहुँचती हैं। वजह पता नहीं चल पाई, इसलिए ऐसे समय पर मैं लगभग इस्तेमाल न होने वाला Gmail account इस्तेमाल करता हूँ
कुछ spam भी अंदर आ जाता है, लेकिन incoming spam के लिए कोई परफ़ेक्ट समाधान नहीं है. LLM, जो natural language processing के लिए डिज़ाइन किए गए हैं, शायद इस काम के लिए अच्छे साबित हों, इसलिए वास्तविक performance को लेकर जिज्ञासा है, लेकिन यह भी लगता है कि resource usage बेहिसाब बढ़ सकता है