VPS-ல் mailcow: Gmail ஏற்கும் சுய host மின்னஞ்சல்
mailcow install செய்வதற்கு முன் port 25 test செய்யவும்; block இருந்தால் mail queue-லிருந்து வெளியே வராது. உடனே Gmail 550 5.7.25 PTR rejection தடுக்கும் DNS அமைக்கவும்.
நீங்கள் உருவாக்கப் போவது என்ன
நீங்களே வைத்திருக்கும் ஒரு சர்வரில் முழுமையான மின்னஞ்சல் சேவையகம் ஒன்றை நீங்கள் உருவாக்கப் போகிறீர்கள்: அனுப்பவும் பெறவும் SMTP, உங்கள் தொலைபேசியும் மடிக்கணினியும் ஒத்திசைவாக இருக்க IMAP, ஒரு webmail கிளையன்ட், மற்றும் இரு திசைகளிலும் ஒவ்வொரு செய்திக்கும் மதிப்பெண் கணக்கிடும் ஸ்பாம் வடிகட்டி. mailcow-dockerized என்பது Postfix, Dovecot, Rspamd, SOGo webmail, MariaDB, Redis மற்றும் ஒரு ACME கிளையன்ட் ஆகியவற்றை ஒரே Docker Compose stack-ஆக ஒன்றிணைக்கிறது. எனவே மென்பொருள் பகுதி கடினமானது அல்ல. அரை மணி நேரத்தில் அதை இயக்கத் தொடங்கிவிடுவீர்கள்.
கடினமான பகுதி அதைச் சூழ உள்ளவை அனைத்தும். மின்னஞ்சல் ஒரு சேவை ஆகும்; இதில் இணையத்தின் மற்ற பகுதிகள் புதிதாக உருவாக்கப்பட்ட சேவையகத்தை தீவிரமாக நம்பாது. "இது வேலை செய்கிறது" என்பதிலிருந்து "Gmail ஒவ்வொரு செய்தியையும் அமைதியாக விழுங்குகிறது" என்பதற்கு இடையிலான இடைவெளி நான்கு DNS பதிவுகள் மற்றும் ஒரு IP-நற்பெயர் அமைப்பைப் பொறுத்தது; இதை நீங்கள் முழுமையாகக் கட்டுப்படுத்த இயலாது. ஏதாவது வாடகைக்கு எடுப்பதற்கு முன் கீழே உள்ள முன்நிபந்தனைகளைப் படியுங்கள். அவற்றைப் படித்த பிறகு, நற்பெயர் சம்பந்தப்பட்ட உழைப்பு பயன்படும் என்று தோன்றவில்லை என்றால், அதுவும் ஒரு நியாயமான பதிலே — 2026-இல் உண்மையில் சுயமாக ஹோஸ்ட் செய்வதற்குத் தகுதியானவை எவை என்பதன் நமது சுருக்கம் மின்னஞ்சலை இத்தகைய காரணங்களுக்காகவே "நீங்கள் உண்மையாகத் திட்டமிட்டால் மட்டுமே" என்ற பிரிவின் கீழ் வைக்கிறது.
முன்தேவைகளே இந்தத் திட்டம்
இவற்றில் ஒன்றைக் கூடத் தவறவிட்டால், வந்தடையாத அஞ்சல்களை நீங்கள் அனுப்புவீர்கள். ஒவ்வொன்றும் எவ்வளவு அடிக்கடி மக்களைச் சிரமத்தில் ஆழ்த்துகிறது என்பதன் வரிசையில்:
வெளிச்செல்லும் port 25 திறந்திருக்க வேண்டும். உங்கள் சேவையகம் Gmail மற்றும் Microsoft-க்கு TCP port 25 வழியாக அஞ்சலை வழங்குகிறது. ஸ்பாமைத் தடுக்க, பெரும்பாலான VPS மற்றும் கிளவுட் வழங்குநர்கள் வெளிச்செல்லும் 25-ஐ முன்னிருப்பாகத் தடுக்கிறார்கள்; இந்தத் தடை அமைதியானது — துவக்கத்தில் எந்தப் பிழையும் தெரியாது, அனைத்தும் ஆரோக்கியமாகத் தோன்றும், மேலும் அஞ்சல் வரிசையில் நிரந்தரமாகக் கிடக்கும். ஏதேனும் நிறுவுவதற்கு முன் இதைச் சோதிக்கவும். தடுக்கப்பட்டிருந்தால், உங்கள் வழங்குநரிடம் அதைத் திறக்கக் கோரி ஆதரவுச் சீட்டு அனுப்புவதே ஒரே தீர்வு; சிலர் பழைய கணக்குகளுக்கு இதைச் செய்கிறார்கள், சிலர் ஒருபோதும் செய்ய மாட்டார்கள்.
பயன்படுத்தக்கூடிய நற்பெயருடன் கூடிய சுத்தமான IP. மறுசுழற்சி செய்யப்பட்ட VPS IP-கள் பெரும்பாலும் முந்தைய பயனரின் ஸ்பாம் காரணமாக ஏற்கனவே தடைப்பட்டியலில் இருக்கும். உறுதிப்படுத்துவதற்கு முன், Spamhaus lookup அல்லது mxtoolbox போன்ற சேவையில் உங்களுடையதைச் சரிபார்க்கவும். பட்டியலிடப்பட்ட IP என்பது குறியீடு மூலம் நீங்கள் தவிர்க்க முடியாத நிராகரிப்புகளைக் குறிக்கிறது.
DNS கட்டுப்பாடு மற்றும் சரியான PTR பதிவு. உங்கள் டொமைனின் மண்டலத்தில் பதிவுகளைச் சேர்க்க வேண்டும், மேலும் உங்கள் சேவையகத்தின் IP-க்கு மாற்று DNS (PTR) உங்கள் அஞ்சல் புரவலன் பெயரைச் சுட்டிக்காட்ட வேண்டும். PTR உங்கள் DNS பலகத்தில் அரிதாகவே அமைக்கப்படும் — இது IP-ஐ வைத்திருப்பவரிடம் இருக்கும், எனவே இது உங்கள் VPS வழங்குநரின் கட்டுப்பாட்டுப் பலகத்தில் அல்லது சீட்டு மூலம் அமைக்கப்படும்.
6 GiB RAM மற்றும் 2 vCPU ஆகியவை வசதியான குறைந்தபட்சம். தனிப்பட்ட நிறுவலுக்கு mailcow-ன் சொந்தக் குறைந்தபட்சம் 6 GiB RAM மற்றும் 1 GiB swap ஆகும்; சில பயனர்கள் நம்பியதும் 8 GiB பரிந்துரைக்கப்படுகிறது. ஏறக்குறைய 2.5 GiB-க்குக் கீழ், கர்னல் கொள்கலன்களைக் கொல்வதைத் தவிர்க்க ClamAV வைரஸ் ஸ்கேனரை முடக்க generate_config.sh வழங்குகிறது. தொடக்கத்திற்கு 20 GB SSD கொடுக்கவும்.
வெறும் IP அல்லாத ஒரு DNS பெயர். mail.example.com போன்ற ஒரு புரவலன் பெயரைத் தேர்ந்தெடுக்கவும். அந்த ஒற்றைப் பெயர் உங்கள் MAILCOW_HOSTNAME ஆகவும், உங்கள் TLS சான்றிதழ் பொருளாகவும், உங்கள் PTR இலக்காகவும், உங்கள் SMTP பதாகையாகவும் மாறுகிறது. எங்கும் இதை நிலையாக வைத்திருக்கவும்.
படி 1 — வெளிச்செல்லும் 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!தடுக்கப்பட்ட port ஐந்து நொடிகள் முழுவதும் நிறுத்தப்பட்டு, பின்னர் தோல்வியடையும்:
nc: connect to gmail-smtp-in.l.google.com port 25 (tcp) timed out: Operation now in progressஅந்த timeout தான் தடை. இது provider-பக்க நெட்வொர்க் வடிகட்டி, உங்கள் firewall அல்ல. எனவே உள்ளமைவு எதையும் மாற்றினால் இது சரியாகாது. ஒரு ticket திறக்கவும்: "எனது VPS-இல் <IP>-க்கு வெளிச்செல்லும் TCP port 25-ஐ இயக்கவும்; நான் ஒரு சட்டபூர்வமான mail server-ஐ இயக்குகிறேன்." இது "succeeded" என முடிவளிக்கும் வரை mailcow-ஐ நிறுவ வேண்டாம். உள்வரும் 25 (மற்ற சேவையகங்கள் உங்களை அணுகுவது) ஒரு தனி பாதை என்பதையும், அது பொதுவாக திறந்திருக்கும் என்பதையும் கவனிக்கவும் — provider-கள் தடுப்பது வெளிச்செல்லும் பக்கம் தான்.
படி 2 — DNS பதிவுகளை இப்போது அமைக்கவும்
DNS மாற்றங்கள் பரவ நேரம் எடுக்கும், எனவே நிறுவுவதற்கு முன் முடிந்தவரை அனைத்தையும் வெளியிடுங்கள். உங்கள் டொமைன் example.com, உங்கள் மெயில் ஹோஸ்ட் mail.example.com, மற்றும் IP 10.0.0.10 என வைத்துக்கொள்ளுங்கள். உங்கள் ஜோனில், இவற்றை உருவாக்கவும்:
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 பதிவு "இந்த டொமைனுக்காக எனது MX மட்டுமே அனுப்பலாம், மற்றவற்றை நிராகரிக்கவும்" எனக் கூறுகிறது. DMARC ஐ p=none இல் தொடங்கவும், அப்போது உங்கள் சொந்த மெயிலை திருப்பி அனுப்பாமல் அறிக்கைகளைக் கவனிக்கலாம்; ஒழுங்கு சரிபார்ப்பு உறுதிப்படுத்தப்பட்டதும் p=quarantine ஆகவும் பின்னர் p=reject ஆகவும் இறுக்கமாக்கவும். இரண்டு பதிவுகள் வேண்டுமென்றே இன்னும் விடுபட்டுள்ளன: DKIM, இதை mailcow படி 6 இல் உங்களுக்காக உருவாக்கும், மற்றும் PTR, இதை நீங்கள் இப்போது உங்கள் வழங்குநரின் பேனலில் அமைக்கவும்.
10.0.0.10 க்கான PTR (reverse DNS) ஐ mail.example.com ஆக அமைக்கவும் — இது MAILCOW_HOSTNAME இன் சரியான மதிப்பு. பெரும்பாலானவர்கள் மறந்துவிடும் ஒரே பதிவு இதுதான், மேலும் பெரிய வழங்குநர்கள் இதை அடிப்படையாகக் கொண்டு மெயிலை நிராகரிக்கிறார்கள். உங்கள் பேனலில் rDNS புலம் இல்லையென்றால், ஒரு டிக்கெட் திறக்கவும்.
படி 3 — Docker-ஐ நிறுவவும்
mailcow-க்கு Compose v2 சொருகுப்பொருளுடன் கூடிய Docker Engine தேவை. Ubuntu-வின் docker.io தொகுப்பில் Compose சொருகுப்பொருள் இல்லை. எனவே, அதற்கு பதிலாக Docker-இன் அதிகாரப்பூர்வ வசதிக்கான ஸ்கிரிப்ட்டைப் பயன்படுத்தவும்:
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 சொருகுப்பொருள் நிறுவப்படவில்லை. Docker-இன் களஞ்சியத்திலிருந்து அந்த சொருகுப்பொருளை நிறுவவும் — மேலே உள்ள ஸ்கிரிப்ட்டை மீண்டும் இயக்கவும், அல்லது இரண்டையும் Docker-இன் சொந்த apt களஞ்சியத்திலிருந்து அமைக்கும் எங்கள் Docker Compose அடிப்படை வழிகாட்டியைப் பின்பற்றவும்.
படி 4 — mailcow-ஐ குளோன் செய்து config-ஐ உருவாக்கவும்
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
umask
sudo ./generate_config.shமுதலில் umask என்பது 0022 என அச்சிடுகிறதா எனச் சரிபார்க்கவும் — mailcow ஒரு பொருத்தமற்ற file mask-உடன் பில்ட் ஆவதை மறுக்கிறது, மேலும் புதிய Ubuntu 24.04 root shell ஏற்கனவே உங்களுக்கு 0022-ஐத் தருகிறது. பின்னர் ஸ்கிரிப்ட் முக்கியமான ஒரே ஒரு விஷயத்தைக் கேட்கிறது: முழுமையான qualified hostname. mail.example.com என உள்ளிடவும் — இந்த மதிப்பு உங்கள் A record மற்றும் PTR-உடன் சரியாகப் பொருந்த வேண்டும். இது mailcow.conf-ஐ எழுதுகிறது, இதுதான் மொத்த ஸ்டாக்கும் படிக்கும் ஒரே ஒரு environment file. வெப் போர்ட்களை (HTTP_PORT, HTTPS_PORT) மாற்றவோ சிறிய சர்வரில் ClamAV-ஐ முடக்கவோ தேவைப்பட்டால் இதைத் திறக்கவும்:
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 என்பது குறைந்த RAM கொண்ட சர்வரில் பயன்படுத்தக்கூடிய மற்றொரு விருப்பம்: full-text search தான் mailcow-ன் ஆவணங்கள் குறிப்பிடும் இரண்டாவது அதிக நினைவகத்தைப் பயன்படுத்தும் கூறு, மேலும் அதைத் தவிர்ப்பதால் ஏற்படும் ஒரே இழப்பு webmail-ல் உடல் உரையில் தேடுவது மட்டுமே.
HTTP_PORT=80 மற்றும் HTTPS_PORT=443-ஐ அப்படியே விடவும், அதே ஹோஸ்டில் வேறு ஏதாவது ஏற்கனவே அவற்றை ஆக்கிரமித்திருக்கவில்லை என்றால் — mailcow-ன் உள்ளமைந்த ACME கிளையன்ட் சான்றிதழைப் பெற இணையத்திலிருந்து போர்ட் 80 அணுகக்கூடியதாக இருக்க வேண்டும். இதனால்தான் நீங்கள் ஒரே சர்வரில் தனி nginx-plus-Certbot அமைப்பை இயக்கக் கூடாது; mailcow தனக்குள்ளேயே அதன் TLS-ஐ வழங்கி புதுப்பிக்கிறது, மேலும் 80/443-ஐ ஆக்கிரமிக்கும் இரண்டாவது சேவை அதைச் சேதப்படுத்தும்.
படி 5 — ஸ்டாக்கை தொடங்கி உள்நுழையவும்
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psஇந்த pull கட்டளை தோராயமாக இருபது இமேஜ்களை எடுத்துச் செல்கிறது; சில நிமிடங்கள் காத்திருக்கவும். docker compose ps ஒவ்வொரு கன்டெய்னரையும் running (அல்லது healthy) எனக் காட்டியதும், ஒரு உலாவியில் https://mail.example.com ஐத் திறக்கவும். இயல்புநிலை admin உள்நுழைவு: பயனர்பெயர் admin, கடவுச்சொல் moohoo. Access → Administrators பகுதியின் கீழ் admin UI இல் அந்தக் கடவுச்சொல்லை உடனே மாற்றவும். உலாவி NET::ERR_CERT_AUTHORITY_INVALID என எச்சரித்தால், ACME சான்றிதழ் இன்னும் வழங்கப்படவில்லை — அது உடைந்துவிட்டது என்று கருதுவதற்கு முன்பு கீழே உள்ள ACME தோல்வியைப் பார்க்கவும்; முதல் ஒன்று அல்லது இரண்டு நிமிடங்களுக்கு self-signed placeholder இயல்பானதே.
படி 6 — ஒரு டொமைன், ஒரு மெயில்பாக்ஸ் சேர்த்து, DKIM வெளியிடுதல்
நிர்வாக UI இல், Mail Setup பக்கத்தைத் திறக்கவும் (Configuration → Mail Setup). Domains தாவலின் கீழ் Add domain என்பதைக் கிளிக் செய்து example.com ஐ உள்ளிடவும். பின்னர், Mailboxes பிரிவின் கீழ், Add mailbox என்பதைக் கிளிக் செய்து ஒரு கடவுச்சொல்லுடன் you@example.com ஐ உருவாக்கவும். இது IMAP வழியாக ஏற்கனவே அணுகக்கூடிய செயல்படும் மெயில்பாக்ஸ் ஆகும்.
இப்போது DKIM விசை. Configuration → ARC/DKIM keys பக்கத்திற்குச் செல்லவும். நீங்கள் டொமைனைச் சேர்த்தபோது mailcow ஏற்கனவே ஒரு விசையை உருவாக்கியிருக்கலாம். இல்லையென்றால், அங்கே ஒன்றை உருவாக்கவும் — டொமைனைத் தேர்ந்தெடுக்கவும், selector ஆக dkim ஐ வைத்திருக்கவும், 2048-bit என்பதைத் தேர்ந்தெடுக்கவும், Add என்பதைக் கிளிக் செய்யவும். அது காட்டும் நீண்ட TXT மதிப்பை நகலெடுத்து பின்வருமாறு வெளியிடவும்:
dkim._domainkey.example.com. TXT "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqh...long-key...QAB"mailcow இன் Domains பக்கத்தில் ஒரு DNS பொத்தான் உள்ளது. அது எதிர்பார்க்கும் ஒவ்வொரு பதிவையும் பட்டியலிடும். உண்மையில் வெளியிடப்பட்டவை எதுவோ அதற்கு பச்சை குறி அல்லது சிவப்பு குறியைக் காட்டும். இதை உங்கள் சரிபார்ப்புப் பட்டியலாகப் பயன்படுத்தவும் — விநியோஜத்தன்மையைச் சோதிப்பதற்கு முன் ஒவ்வொரு வரியையும் பச்சையாக மாற்றவும். வெளியிட்ட பிறகும் DKIM வரி சிவப்பாக இருந்தால், விசை TXT துண்டுகளாகத் தவறாகப் பிரிக்கப்பட்டது என்று பொருள். ஒரு 2048-bit விசை ஒரு ஒற்றை TXT சரத்தின் 255 எழுத்து வரம்பை விட நீளமானது. எனவே அதை ஒரு தர்க்கரீதியான மதிப்பாக ஒட்டவும். உங்கள் DNS ஹோஸ்ட் அதைத் துண்டுகளாகப் பிரித்துக்கொள்ளட்டும்.
படி 7 — வழங்குதிறனைச் சோதித்து 10/10 மதிப்பெண்ணை நோக்கி முன்னேறுங்கள்
mail-tester.com தளத்திற்குச் செல்லுங்கள். அது காட்டும் சீரற்ற முகவரியை நகலெடுத்து, உங்கள் புதிய அஞ்சல்பெட்டியிலிருந்து அதற்கு ஒரு செய்தி அனுப்புங்கள் — https://mail.example.com/SOGo இல் உள்ள SOGo webmail இல் உள்நுழைந்து அங்கிருந்து அனுப்புங்கள். பிறகு "Then check your score" என்பதைச் சொடுக்கவும்.
10/10 மதிப்பெண்ணை நோக்கமாகக் கொள்ளுங்கள். பொதுவான புள்ளி குறைப்புகளும் அவற்றின் காரணங்களும்:
- SPF சீரமைப்பில்லை — உங்கள்
MX/SPF பதிவு விடுபட்டுள்ளது அல்லது அனுப்பும் IP சேர்க்கப்படவில்லை. SPF TXT பதிவை மீண்டும் சரிபாருங்கள். - DKIM கையொப்பம் சரிபார்க்கப்படவில்லை —
dkim._domainkeyTXT விடுபட்டுள்ளது, இன்னும் பரவவில்லை, அல்லது சிதைந்துள்ளது. இதுதான் மிகப் பொதுவான குறைபாடு. - PTR இல்லை / PTR பொருத்தமின்மை — பின்திரும்பு DNS,
mail.example.comஆகத் தீர்வதில்லை. வழங்குநரிடம் இதைச் சரிசெய்யுங்கள். - தடுப்புப்பட்டியலில் உள்ளது — உங்கள் IP இன் முந்தைய நற்பெயர் காரணம். பட்டியலிலிருந்து நீக்கக் கோருங்கள் அல்லது ஒரு சுத்தமான IP கேட்டுக்கொள்ளுங்கள்.
இது 10/10 எனக் காட்டும் வரை Gmail அல்லது Outlook இற்கு உண்மையான அஞ்சல் அனுப்ப வேண்டாம். குறைந்த மதிப்பெண்ணுடன் புதிய IP என்பது முதல் நாளிலேயே உங்கள் டொமைன் கொடியிடப்படக் காரணமாகும்.
படி 8 — ஒரு உண்மையான மின்னஞ்சல் கிளையன்டை இணைக்கவும்
Thunderbird, Apple Mail, அல்லது உங்கள் தொலைபேசியை இந்த அமைப்புகளுடன் சேவையகத்திற்கு சுட்டிக்கொள்ளுங்கள். எல்லாவற்றிற்கும் சேவையக ஹோஸ்ட் mail.example.com ஆகும்:
- IMAP: port 993, SSL/TLS (அல்லது 143, STARTTLS உடன்)
- SMTP submission: port 465, SSL/TLS (அல்லது 587, STARTTLS உடன்)
- பயனர்பெயர்: முழு முகவரி,
you@example.com - கடவுச்சொல்: நீங்கள் அமைத்த அஞ்சல்பெட்டி கடவுச்சொல்
கிளையன்ட் மின்னஞ்சலை port 25 வழியாக ஒருபோதும் அனுப்ப வேண்டாம் — அந்த port சேவையகத்திற்கு மட்டுமே உரியது, mailcow அங்கு அங்கீகரிக்கப்பட்ட submission வழங்குவதில்லை, மேலும் அதை நோக்கி சுட்டிக்கொள்ளப்பட்ட கிளையன்ட் நிராகரிக்கப்படும். ஒரு கிளையன்ட் Relay access denied என தெரிவித்தால், அது 25 இல் அல்லது அங்கீகரிப்பு இல்லாமல் அனுப்ப முயற்சிக்கிறது; அதை 465 அல்லது 587 ஆக மாற்றி உங்கள் அஞ்சல்பெட்டி சான்றாதாரங்களைப் பயன்படுத்தவும்.
படி 9 — உண்மையில் முக்கியமானவற்றை காப்புப் பிரதி எடுக்கவும்
mailcow ஒரு காப்புப் பிரதி ஸ்கிரிப்டை வழங்குகிறது. இது ஒவ்வொரு stateful volume-ன் ஸ்னாப்ஷாட்டையும் எடுக்கிறது. இதை ஒரு வெளிப்புற டிஸ்க்கில் அல்லது mount செய்யப்பட்ட ரிமோட் இடத்தில் இயக்கவும்:
sudo MAILCOW_BACKUP_LOCATION=/opt/mailcow-backups \
./helper-scripts/backup_and_restore.sh backup allall ஆறு பொருட்களைக் கைப்பற்றுகிறது. இவற்றில் ஏதேனும் ஒன்றை இழந்தால் தரவு இழக்கப்படுகிறது: vmail (உண்மையான மெயில்பாக்ஸ்கள்), crypt (vmail-ஐ டிக்ரிப்ட் செய்யும் விசைகள் — இது இல்லாமல் vmail பயனற்றது), mysql (டொமைன்கள், பயனர்கள், அலையஸ்கள் மற்றும் அமைப்புகளைக் கொண்ட MariaDB), redis (வரிசை மற்றும் கேச் நிலை), rspamd (கற்றுக்கொண்ட ஸ்பேம்/ஹாம்), மற்றும் postfix (மெயில் வரிசை). இது ஒரு ஹெல்பர் கன்டெய்னருக்குள் இயங்கி சுருக்கப்பட்ட ஆர்கைவ்களை எழுதுகிறது. எனவே stack இயங்கிக்கொண்டிருக்கும்போதும் காப்புப் பிரதிகள் சீராக இருக்கும். இதை ஒரு இரவுநேர cron job மூலம் தானியக்கமாக்கவும். பழைய தொகுப்புகளை நீக்க --delete-days 14 சேர்க்கவும். மீட்டெடுப்பு என்பது restore உடன் கூடிய அதே ஸ்கிரிப்ட் தான். இது ஸ்னாப்ஷாட்களை பட்டியலிடுகிறது. மீட்டெடுக்க வேண்டியதை நீங்கள் தேர்ந்தெடுக்கலாம். நீங்கள் ஒருபோதும் சோதித்து மீட்டெடுக்காத காப்புப் பிரதி என்பது காப்புப் பிரதி அல்ல — அது வெறும் நம்பிக்கை மட்டுமே. ஒரு ஸ்கிராட்ச் VPS-ல் ஒரு ட்ரை ரன் செய்து பாருங்கள்.
படி 10 — ஒரு கால அட்டவணைப்படி புதுப்பிக்கவும்
mailcow தனது சொந்த ஸ்கிரிப்ட் மூலம் புதுப்பிக்கிறது. அந்த ஸ்கிரிப்ட் புதிய குறியீட்டை இழுக்கிறது, mailcow.conf-ஐ இடம்பெயர்க்கிறது, இமேஜ்களை முன்கூட்டியே எடுக்கிறது, மற்றும் கொள்கலன்களை வரிசையாக மறுதொடக்கம் செய்கிறது:
cd /opt/mailcow-dockerized
sudo ./update.sh --check # reports whether an update exists, changes nothing
sudo ./update.sh # applies itமுதலில் காப்புப் பிரதி எடுக்கவும் (படி 9). ஏனெனில் ஒரு ஸ்கீமா இடம்பெயர்வை மீளமைப்பது கடினம். புதுப்பிப்புகள் அடிக்கடி வருகின்றன. அவை இணையத்தை நோக்கி இயங்கும் டேமான்களுக்கான பாதுகாப்புத் திருத்தங்களைக் கொண்டுள்ளன. எனவே ஒரு மெயில் சர்வரை பல மாதங்களுக்கு புதுப்பிக்காமல் விடாதீர்கள். ஒரு புதுப்பிப்பு ஒரு கொள்கலனை பாதிக்கப்பட்ட நிலையில் விட்டால், sudo docker compose logs --tail=50 <service>-mailcow மீண்டும் தொடங்கத் தவறிய டேமானின் பெயரைக் குறிப்பிடுகிறது.
கடினமாக்கல் குறித்த குறிப்பு
mailcow தனக்கென ஒரு netfilter சேவையை (netfilter-mailcow) இயக்குகிறது. இது மின்னஞ்சல் மற்றும் webmail போர்ட்களில் தாக்குதல் நடத்தும் IP முகவரிகளைத் தடுக்கிறது. எனவே, மின்னஞ்சல் பக்கம் இயல்பாகவே பாதுகாக்கப்படுகிறது. இது புரவலனில் உள்ள SSH ஐ உள்ளடக்காது. SSH இன்னமும் வெளிப்படையாகவே உள்ளது. இதன்மீது இன்னமும் brute-force தாக்குதல்கள் நடக்கின்றன. எனவே, இந்த அமைப்பை SSH auth பதிவைக் கவனிக்கும் Fail2ban மற்றும் விசை-மட்டும் உள்நுழைவுடன் இணைக்கவும். mailcow நிர்வாக UI ஐ ஒரு வலுவான கடவுச்சொல்லுக்குப் பின்னால் வைக்கவும். மேலும், சாத்தியமானால், அதைப் பொது இணையத்திலிருந்து விலக்கி வைக்கவும் அல்லது ஒரு VPN க்குப் பின்னால் வைக்கவும்.
பிழை நிலைகள், சரியான சரங்களுடன்
அஞ்சல் வரிசையில் சேர்ந்து ஒருபோதும் வழங்கப்படுவதில்லை. sudo docker compose exec postfix-mailcow postqueue -p ஐ இயக்கவும், அல்லது நிர்வாக UI இன் அஞ்சல் வரிசையைப் படிக்கவும்; உள்ளீடுகள் ஒத்திவைக்கப்பட்ட நிலையில் இவ்வாறு இருக்கும்:
status=deferred (connect to gmail-smtp-in.l.google.com[142.250.x.x]:25: Connection timed out)இது உங்கள் வழங்குநரால் வெளிச்செல்லும் port 25 தடுக்கப்பட்டதே காரணம் (Step 1). எந்த உள்ளமைவும் இதை சரிசெய்யாது — ஒரு டிக்கெட் திறக்கவும். இது DNS பிழையும் அல்ல, TLS பிழையும் அல்ல; port 25 இல் தொலைநிலை MX க்கு எதிராக timed out என்ற வார்த்தை இருப்பதே அறிகுறி.
Gmail அனைத்தையும் ஸ்பேம் என குறிக்கிறது, அல்லது திருப்பி அனுப்புகிறது. Gmail இல் செய்தியைத் திறக்கவும், "Show original" என்பதைத் தேர்ந்தெடுத்து அங்கீகார முடிவுகளைப் படிக்கவும். dkim=fail அல்லது dkim=none என்றால் உங்கள் dkim._domainkey TXT விடுபட்டது, சிதைந்தது, அல்லது இன்னும் பரவவில்லை — ARC/DKIM பக்கம் காட்டுவதை அப்படியே மீண்டும் வெளியிட்டு TTL காலத்திற்காக காத்திருக்கவும். spf=fail என்றால் SPF/MX பதிவுகள் உங்கள் IP ஐ உள்ளடக்கவில்லை. சீரமைப்பே முக்கியம்; ஒரு சரிபார்ப்பு தோல்வியடைவது மட்டும் ஸ்பேமில் இடம்பெற போதுமானது.
இணைப்பின்போது பெரிய வழங்குநர்களால் நிராகரிக்கப்படுகிறது. திருப்பி அனுப்பப்பட்ட செய்திகள் அல்லது Postfix பதிவுகள் Gmail இன் PTR நிராகரிப்பைக் கொண்டிருக்கும்:
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 குறியீடு என்பது பின்னோக்கு DNS விடுபட்டது அல்லது பொருந்தவில்லை என்பதைக் குறிக்கிறது. வழங்குநரிடம் உங்கள் IP இன் PTR ஐ mail.example.com ஆக அமைக்கவும் (Step 2). முன்னோக்கு (A) மற்றும் பின்னோக்கு (PTR) இணக்கமாக இருக்க வேண்டும், மேலும் இரண்டும் mailcow மற்ற சேவையகங்களுக்கு வரவேற்பளிக்கும் அதே புரவலன் பெயரைக் கொண்டிருக்க வேண்டும்.
உலாவி ஒருபோதும் நீங்காத சான்றிதழ் எச்சரிக்கையைக் காட்டுகிறது. acme-mailcow கொள்கலன் உண்மையான சான்றிதழைப் பெற முடியவில்லை. அதன் பதிவை சரிபாருங்கள்:
sudo docker compose logs acme-mailcow | tail -n 40Cannot validate any hostnames, skipping Let's Encrypt for 1 hour. போன்ற ஒரு வரி அல்லது சவால் தோல்வி என்பது port 80 இணையத்திலிருந்து அணுக முடியவில்லை, அல்லது A பதிவு இந்த சேவையகத்தை சுட்டவில்லை என்பதைக் குறிக்கிறது. mail.example.com இந்த சேவையகத்திற்கு தீர்க்கப்படுவதை உறுதிப்படுத்தவும், எந்த புரவலன் ஃபயர்வால் வழியாகவும் 80 மற்றும் 443 ஐத் திறக்கவும், மேலும் வேறு எதுவும் அந்த port களை இணைக்கவில்லை என்பதை உறுதிப்படுத்தவும். காரணத்தை சரிசெய்த பிறகு, ஒரு மணிநேர பின்னடைவை காத்திருப்பதற்கு பதிலாக sudo docker compose restart acme-mailcow உடன் கிளையன்ட்டை மறுதொடக்கம் செய்யவும்.
FAQ
சுயமாக இமெயில் ஹோஸ்டிங் செய்வது உண்மையில் மதிப்புள்ளதா?
தரவு உரிமை, வரம்பற்ற aliases, மற்றும் முழுக் கட்டுப்பாடு தேவைப்பட்டால், ஆம். ஒரு VPS-ன் விலைக்கு mailcow ஒரு தொழில்முறை stack தருகிறது. ஆனால் deliverability ஒரு நிரந்தரப் பணி. IP reputation, DNS alignment, மற்றும் blocklist கண்காணிப்பு முற்றிலும் முடிவதே இல்லை. ஒரு முக்கியமான வணிக முகவரிக்கு, ஒரு நாள் spam கோப்புறையில் செல்வது உங்களுக்கு நஷ்டம் விளைவிக்கும். அத்தகைய சூழலில் ஒரு managed provider தேர்வு தான் நடைமுறைச் சரியான முடிவு. வசதியை விடக் கட்டுப்பாட்டை நீங்கள் மதித்து, இதைத் தொடர்ந்து பராமரிக்கும்போது சுய-ஹோஸ்டிங் செய்யவும்.
outbound port 25 முடக்கப்பட்டுள்ளதா என எப்படி அறிவது?
சேவையகத்திலிருந்து nc -vz -w 5 gmail-smtp-in.l.google.com 25 ஐ இயக்கவும். "succeeded!" என்று வந்தால் அது திறந்திருப்பதைக் குறிக்கிறது. இடைநிறுத்தத்திற்குப் பிறகு timed out வந்தால், உங்கள் provider அதை முடக்கியுள்ளார் என்று பொருள். ஒரு சுய-ஹோஸ்ட் சேவையகம் இமெயில்களைப் பெற்றுக்கொண்டு ஒருபோதும் அனுப்ப முடியாததற்கு இதுவே மிகப் பொதுவான காரணம். இதற்கான ஒரே தீர்வு, உங்கள் provider அந்த port ஐத் திறப்பது தான். எந்த local அமைப்பு மாற்றமும் இதைச் சரிசெய்யாது.
என் இமெயில் இன்னும் Gmail-ன் spam கோப்புறையில் ஏன் செல்கிறது?
கிட்டத்தட்ட எப்போதும் இது ஒரு சேதமடைந்த authentication chain காரணமாகும். Gmail-ல் "Show original" ஐப் பயன்படுத்தி spf=pass, dkim=pass, மற்றும் dmarc=pass ஆகியவற்றைப் பார்க்கவும். ஒரு dkim=fail என்பது விடுபட்ட அல்லது சேதமடைந்த dkim._domainkey TXT record ஐச் சுட்டிக்காட்டுகிறது. PTR mismatch அல்லது அனுப்பும் வரலாறு இல்லாத புதிய IP மேலும் பாதிக்கிறது. முதலில் mail-tester.com இல் 10/10 மதிப்பீடு பெறுங்கள். பிறகு IP ஐ மெதுவாக சூடாக்கவும். முதல் நாளிலேயே பெருந்தொகை அனுப்புவதற்குப் பதிலாக, ஒரு நாளைக்கு சில செய்திகள் என தொடங்கி படிப்படியாக அதிகரிக்கவும்.
நான் கண்டிப்பாக எதை backup செய்ய வேண்டும்?
backup_and_restore.sh backup all ஐ இயக்கி, முழுத் தொகுப்பையும் சேவையகத்திற்கு வெளியே வைத்திருக்கவும். இது vmail (mailbox-கள்), crypt (அவற்றை டிக்ரிப்ட் செய்யும் keys), MariaDB தரவுத்தளம் (domains, users, aliases, settings), Redis, Rspamd-ன் கற்ற தரவு, மற்றும் Postfix queue ஆகியவற்றைக் கைப்பற்றுகிறது. crypt volume தான் மக்கள் கண்டுகொள்ளாதது. அது இல்லாவிட்டால் vmail backup வாசிக்க முடியாத ciphertext ஆகவே இருக்கும். ஒரு முறையாவது ஒரு scratch box-ல் restore செய்து சோதிக்கவும்.
2 GB VPS-ல் mailcow ஐ இயக்க முடியுமா?
சுமுகமாக இல்லை. generate_config.sh தோராயமாக 2.5 GiB-க்குக் கீழே ClamAV ஐ முடக்க வழிவகை செய்கிறது. அப்படியிருந்தாலும், Rspamd, ClamAV, Dovecot மற்றும் MariaDB ஆகியவை memory-க்காக போட்டியிடுகின்றன. எனவே எந்த உண்மையான load-லும் நீங்கள் swap மற்றும் OOM kills-ஐ எதிர்கொள்வீர்கள். ஒரு நிலையான single-user நிறுவலுக்கு 6 GiB உடன் 1 GiB swap ஐக் குறைந்தபட்ச அளவாகக் கொள்ளுங்கள். ஒன்று அல்லது இரண்டு பேருக்கு மேல் இதன் மீது நம்பிக்கை வைக்கும்போது, 8 GiB-க்கு மாறவும்.