{"id":35658,"date":"2026-01-08T01:23:25","date_gmt":"2026-01-07T18:23:25","guid":{"rendered":"https:\/\/dps.media\/huong-dan-cai-dat-mailcow-phien-ban-cuoi\/"},"modified":"2026-01-08T01:23:25","modified_gmt":"2026-01-07T18:23:25","slug":"huong-dan-cai-dat-mailcow-phien-ban-cuoi","status":"publish","type":"post","link":"https:\/\/dps.media\/zh\/huong-dan-cai-dat-mailcow-phien-ban-cuoi\/","title":{"rendered":"Mailcow \u5b89\u88c5\u6307\u5357\uff08\u6700\u7ec8\u7248\u672c\uff09"},"content":{"rendered":"<p>\u672c\u6307\u5357\u9488\u5bf9\u5728\u8fd0\u884c Nginx Proxy Manager (NPM) \u548c Portainer \u7684 VPS \u4e0a\u5b89\u88c5 Mailcow: Dockerized \u8fdb\u884c\u4e86\u4f18\u5316\u3002\u5b83\u5305\u542b\u4e86\u9488\u5bf9\u91cd\u5b9a\u5411\u5faa\u73af (Redirect Loops) \u548c 504 Gateway Timeout \u9519\u8bef\u7b49\u5e38\u89c1\u95ee\u9898\u7684\u4fee\u590d\u3002.<\/p>\n<p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch.jpg\" alt=\"mailcow-architecture\" class=\"wp-image-35655\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-70x70.jpg 70w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h2>1. \u524d\u63d0\u6761\u4ef6<\/h2>\n<ul>\n<li>\u9884\u88c5\u4e86 Docker \u548c Docker Compose \u7684 VPS\u3002.<\/li>\n<li>\u57df\u540d\uff1a <code>mail.khaisanfood.vn<\/code> (\u6307\u5411 VPS IP)\u3002.<\/li>\n<li>Nginx Proxy Manager \u6b63\u5728 Docker \u5bb9\u5668\u4e2d\u8fd0\u884c\u3002.<\/li>\n<\/ul>\n<h3>DNS\u8bb0\u5f55<\/h3>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u7c7b\u578b<\/th>\n<th>\u59d3\u540d<\/th>\n<th>Value<\/th>\n<th>Proxy Status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A<\/td>\n<td>mail<\/td>\n<td>\u60a8\u7684 VPS IP<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autodiscover<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autoconfig<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>MX<\/td>\n<td>@<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>Priority 10<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>@<\/td>\n<td>v=spf1 mx ~all<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>2. \u5b89\u88c5\u6b65\u9aa4<\/h2>\n<h3>\u7b2c 1 \u6b65\uff1a\u514b\u9686 Mailcow<\/h3>\n<pre><code>cd \/opt\ngit clone https:\/\/github.com\/mailcow\/mailcow-dockerized\ncd mailcow-dockerized<\/code><\/pre>\n<h3>\u7b2c 2 \u6b65\uff1a\u751f\u6210\u914d\u7f6e<\/h3>\n<pre><code>.\/generate_config.sh\nHostname: mail.khaisanfood.vn\nTimezone: Asia\/HoChiMinh\nClamAV: Y (\u5982\u679c RAM &gt; 4GB) \u6216 N\u3002.<\/code><\/pre>\n<h3>\u7b2c 3 \u6b65\uff1a\u914d\u7f6e mailcow.conf (\u91cd\u8981)<\/h3>\n<p>\u7f16\u8f91\u914d\u7f6e\u4ee5\u907f\u514d\u51b2\u7a81\u548c\u5faa\u73af\u3002.<\/p>\n<pre><code>nano mailcow.conf<\/code><\/pre>\n<p>\u4fee\u6539\u4ee5\u4e0b\u53d8\u91cf\uff1a<\/p>\n<ul>\n<li><strong>\u9632\u6b62\u91cd\u5b9a\u5411\u5faa\u73af\uff1a<\/strong><br \/>\n<code>HTTP_REDIRECT=n<\/code><br \/>\n(\u6211\u4eec\u8ba9 Nginx Proxy Manager \u5904\u7406 HTTPS\uff0c\u56e0\u6b64\u8bf7\u5173\u95ed Mailcow \u7684\u5185\u90e8\u91cd\u5b9a\u5411)\u3002.<\/li>\n<li><strong>\u7ed1\u5b9a\u5230\u6240\u6709\u63a5\u53e3\uff08\u4ee5\u4fbf NPM \u53ef\u4ee5\u8bbf\u95ee\uff09\uff1a<\/strong>\n<p><code>HTTP_BIND=0.0.0.0<\/code><\/p>\n<p><code>HTTPS_BIND=0.0.0.0<\/code><\/li>\n<\/p>\n<li><strong>\u66f4\u6539\u7aef\u53e3\uff08\u4ee5\u907f\u514d 80\/443 \u51b2\u7a81\uff09\uff1a<\/strong>\n<p><code>HTTP_PORT=8080<\/code><\/p>\n<p><code>HTTPS_PORT=8443<\/code><\/li>\n<\/p>\n<li><strong>\u907f\u514d IP \u51b2\u7a81\uff08\u4fee\u590d \u201cPool overlaps\u201d \u9519\u8bef\uff09\uff1a<\/strong>\n<p><code>IPV4_NETWORK=192.168.201<\/code><\/li>\n<p>\n<\/ul>\n<\/p>\n<p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal.jpg\" alt=\"mailcow-installation-terminal\" class=\"wp-image-35656\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-70x70.jpg 70w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h3>\u7b2c 4 \u6b65\uff1a\u8bbe\u7f6e\u9632\u706b\u5899\uff08\u4fee\u590d 504 \u9519\u8bef\uff09<\/h3>\n<p>\u786e\u4fdd Docker \u5bb9\u5668\u53ef\u4ee5\u76f8\u4e92\u901a\u4fe1\u3002.<\/p>\n<pre><code>ufw allow from 172.16.0.0\/12 to any<\/code><\/pre>\n<h3>\u7b2c 5 \u6b65\uff1a\u542f\u52a8 Mailcow<\/h3>\n<pre><code>docker compose pull\ndocker compose up -d<\/code><\/pre>\n<h2>3. \u914d\u7f6e Nginx Proxy Manager<\/h2>\n<p>\u8bbf\u95ee Nginx Proxy Manager \u5e76\u6dfb\u52a0\u65b0\u7684 Proxy Host\u3002.<\/p>\n<h3>Details \u9009\u9879\u5361<\/h3>\n<ul>\n<li>Domain Names\uff1a <code>mail.khaisanfood.vn<\/code><\/li>\n<li>Scheme: <code>http<\/code> (\u91cd\u8981\uff01\u901a\u8fc7 HTTP \u8fde\u63a5)<\/li>\n<li>Forward Hostname \/ IP: <code>172.17.0.1<\/code><br \/>\n(\u8fd9\u662f\u6807\u51c6\u7684 Docker Gateway IP\u3002\u68c0\u67e5 <code>ip addr show docker0<\/code> \u4ee5\u786e\u8ba4)\u3002.<\/li>\n<li>Forward Port\uff1a <code>8080<\/code><\/li>\n<li>Cache Assets: Disabled<\/li>\n<li>Block Common Exploits: Enabled<\/li>\n<\/ul>\n<h3>SSL \u9009\u9879\u5361<\/h3>\n<ul>\n<li>SSL Certificate: \u8bf7\u6c42\u65b0\u7684 Let's Encrypt \u8bc1\u4e66\u3002.<\/li>\n<li>Force SSL: Enabled.<\/li>\n<li>HTTP\/2 Support: Enabled.<\/li>\n<\/ul>\n<p>\u70b9\u51fb Save\u3002\u73b0\u5728\u60a8\u53ef\u4ee5\u8bbf\u95ee <code>https:\/\/mail.khaisanfood.vn<\/code>.<\/p>\n<p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security.jpg\" alt=\"ssl-security\" class=\"wp-image-35657\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-70x70.jpg 70w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h2>4. \u5b89\u88c5\u540e\u64cd\u4f5c<\/h2>\n<h3>\u540c\u6b65 SSL \u8bc1\u4e66\uff08\u7528\u4e8e\u90ae\u4ef6\u5ba2\u6237\u7aef\uff09<\/h3>\n<p>NPM \u5904\u7406 Web SSL\uff0c\u4f46 Mailcow \u9700\u8981 SMTP\/IMAP \u8bc1\u4e66\u3002\u60a8\u9700\u8981\u4ece\u5bbf\u4e3b\u673a\u4e0a\u7684 NPM Docker \u5377\u4e2d\u590d\u5236\u5b83\u4eec\u3002.<\/p>\n<p>\u67e5\u627e\u60a8\u7684 NPM \u8bc1\u4e66 ID\uff1a\u68c0\u67e5 NPM \u4eea\u8868\u76d8\u6216\u5728\u76ee\u5f55\u4e2d\u67e5\u627e\u3002\u4f8b\u5982\u4e3b\u673a\u8def\u5f84\uff1a <code>\/var\/lib\/docker\/volumes\/nginx-proxy-managernpmletsencrypt\/_data\/live\/npm-21<\/code> (id 21 \u56e0\u57df\u540d\u800c\u5f02)\u3002.<\/p>\n<p>\u540c\u6b65\u547d\u4ee4\uff1a<\/p>\n<pre><code># \u66f4\u65b0\u6b64\u8def\u5f84\u4ee5\u5339\u914d\u60a8\u5728\u4e0a\u65b9\u627e\u5230\u7684\u4e3b\u673a\u8def\u5f84\nNPMCERTPATH=\"\/var\/lib\/docker\/volumes\/nginx-proxy-managernpmletsencrypt\/_data\/live\/npm-21\"\ncp \"$NPMCERTPATH\/fullchain.pem\" \/opt\/mailcow-dockerized\/data\/assets\/ssl\/cert.pem\ncp \"$NPMCERTPATH\/privkey.pem\" \/opt\/mailcow-dockerized\/data\/assets\/ssl\/key.pem\ncd \/opt\/mailcow-dockerized\ndocker compose restart postfix-mailcow dovecot-mailcow nginx-mailcow<\/code><\/pre>\n<h3>\u91cd\u7f6e Admin \u5bc6\u7801<\/h3>\n<p>\u5982\u679c <code>admin \/ moohoo<\/code> \u4e0d\u8d77\u4f5c\u7528\uff1a<\/p>\n<pre><code>cd \/opt\/mailcow-dockerized\/helper-scripts\nbash mailcow-reset-admin.sh<\/code><\/pre>\n<h3>DNS \/ DKIM<\/h3>\n<p>\u767b\u5f55 Mailcow UI -&gt; Configuration -&gt; Mail Setup -&gt; DNS \u4ee5\u83b7\u53d6 DKIM \u8bb0\u5f55\u5e76\u5c06\u5176\u6dfb\u52a0\u5230\u60a8\u7684 DNS \u63d0\u4f9b\u5546\u3002.<\/p>\n<h2>5. \u6dfb\u52a0\u989d\u5916\u57df\u540d (\u591a\u57df\u540d\u8bbe\u7f6e)<\/h2>\n<p>\u60a8\u53ef\u4ee5\u5728\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\u6258\u7ba1\u591a\u4e2a\u7535\u5b50\u90ae\u4ef6\u57df\u540d\uff08\u4f8b\u5982\uff1a <code>@dpsmedia.vn<\/code>\uff09\u3002.<\/p>\n<h3>A. \u5728 Mailcow \u4e2d\u6dfb\u52a0\u57df\u540d<\/h3>\n<ul>\n<li>\u4ee5\u7ba1\u7406\u5458\u6743\u9650\u767b\u5f55 Mailcow UI\u3002.<\/li>\n<li>\u8fdb\u5165 Configuration -&gt; Mail Setup -&gt; Domains\u3002.<\/li>\n<li>\u70b9\u51fb Add Domain\u3002.<\/li>\n<li>\u57df\u540d\uff1a <code>dpsmedia.vn<\/code> (\u6216\u60a8\u7684\u65b0\u57df\u540d)\u3002.<\/li>\n<li>\u70b9\u51fb Add Domain \u5e76\u91cd\u542f SOGo\u3002.<\/li>\n<\/ul>\n<h3>B. \u65b0\u57df\u540d\u7684 DNS (dpsmedia.vn)<\/h3>\n<p>\u8fdb\u5165 <code>dpsmedia.vn<\/code> \u7684 DNS \u63d0\u4f9b\u5546\u5e76\u6dfb\u52a0\u8fd9\u4e9b\u8bb0\u5f55\u3002\u91cd\u8981\uff1a\u5c06\u5b83\u4eec\u6307\u5411\u60a8\u5f53\u524d\u7684\u90ae\u4ef6\u670d\u52a1\u5668 URL (<code>mail.khaisanfood.vn<\/code>).<\/p>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>\u7c7b\u578b<\/th>\n<th>\u59d3\u540d<\/th>\n<th>Value<\/th>\n<th>\u72b6\u6001<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>MX<\/td>\n<td>@<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>Priority 10<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>@<\/td>\n<td>v=spf1 mx include:mail.khaisanfood.vn ~all<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autodiscover<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autoconfig<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>dkim._domainkey<\/td>\n<td>(\u4ece Mailcow UI -&gt; DNS \u590d\u5236\u503c)<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>_dmarc<\/td>\n<td>v=DMARC1; p=none;<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>(\u60a8\u4e0d\u9700\u8981\u65b0\u7684 IP \u5730\u5740\u3002\u6240\u6709\u5185\u5bb9\u90fd\u901a\u8fc7\u4e3b IP)\u3002.<\/p>\n<h3>C. (\u53ef\u9009) \u901a\u8fc7 mail.dpsmedia.vn \u8bbf\u95ee Mailcow UI<\/h3>\n<p>\u5982\u679c\u60a8\u60f3\u901a\u8fc7 <code>https:\/\/mail.dpsmedia.vn<\/code>:<\/p>\n<p>\u8bbf\u95ee\u7ba1\u7406\u754c\u9762\uff0c\u8bf7\u7f16\u8f91\u914d\u7f6e\uff1a<\/p>\n<pre><code>nano mailcow.conf\nADDITIONALSERVERNAMES=mail.dpsmedia.vn\ndocker compose up -d<\/code><\/pre>\n<p>Nginx Proxy Manager: \u590d\u5236\u4e0e <code>mail.khaisanfood.vn<\/code>.<\/p>\n<h3>\u76f8\u540c\u7684\u8bbe\u7f6e\u3002D. \u989d\u5916\u57df\u540d\u7684 SSL \u8bc1\u4e66<\/h3>\n<p><strong>\u9009\u9879 1\uff1a<\/strong> (\u63a8\u8350) \u4f7f\u7528 <code>mail.khaisanfood.vn<\/code> \u4f5c\u4e3a\u6536\u53d1\u670d\u52a1\u5668\u3002.<\/p>\n<p><strong>\u9009\u9879 2\uff1a<\/strong> (\u9ad8\u7ea7) \u5728\u914d\u7f6e\u4e2d\u542f\u7528 <code>ENABLESSLSNI=y<\/code> \uff0c\u521b\u5efa\u5355\u72ec\u7684 SSL \u76ee\u5f55\u5e76\u5c06\u65b0\u8bc1\u4e66\u540c\u6b65\u5230\u5176\u4e2d\u3002.<\/p>\n<h2>6. \u4fee\u590d\u90ae\u4ef6\u53d1\u9001\u95ee\u9898 (Gmail \u5c4f\u853d)<\/h2>\n<p>\u5982\u679c\u9047\u5230\u9519\u8bef <code>550-5.7.1<\/code>, \uff0c\u610f\u5473\u7740\u60a8\u7684 IP \u4fe1\u8a89\u8f83\u4f4e\u3002.<\/p>\n<h3>A. \u8bbe\u7f6e\u53cd\u5411 DNS (PTR) \u2013 \u5f3a\u5236\u6027<\/h3>\n<p>\u8fdb\u5165 VPS \u63d0\u4f9b\u5546\u7684\u4eea\u8868\u677f\uff0c\u5c06\u60a8\u7684 IP \u7684 PTR \u8bb0\u5f55\u8bbe\u7f6e\u4e3a <code>mail.khaisanfood.vn<\/code>.<\/p>\n<h3>B. \u4f7f\u7528 SMTP \u4e2d\u7ee7<\/h3>\n<p>\u5982\u679c IP \u88ab\u5217\u5165\u9ed1\u540d\u5355\uff0c\u8bf7\u4f7f\u7528 Amazon SES\u3001SendGrid \u6216 Mailgun \u4f5c\u4e3a\u4e2d\u7ee7\u3002.<\/p>\n<h2>7. \u5378\u8f7d\u6307\u5357<\/h2>\n<p>\u8b66\u544a\uff1a\u6b64\u64cd\u4f5c\u5c06\u5220\u9664\u6240\u6709\u7535\u5b50\u90ae\u4ef6\u6570\u636e\u3002.<\/p>\n<pre><code>cd \/opt\/mailcow-dockerized\ndocker compose down -v\ncd \/opt\nrm -rf mailcow-dockerized<\/code><\/pre>\n<p>\u5728 NPM \u4e2d\u5220\u9664 Proxy Host\u3002.<\/p>\n<style>\r\n.lwrp.link-whisper-related-posts{\r\n            \r\n            margin-top: 40px;\nmargin-bottom: 30px;\r\n        }\r\n        .lwrp .lwrp-title{\r\n            \r\n            \r\n        }.lwrp .lwrp-description{\r\n            \r\n            \r\n\r\n        }\r\n        .lwrp .lwrp-list-container{\r\n        }\r\n        .lwrp .lwrp-list-multi-container{\r\n            display: flex;\r\n        }\r\n        .lwrp .lwrp-list-double{\r\n            width: 48%;\r\n        }\r\n        .lwrp .lwrp-list-triple{\r\n            width: 32%;\r\n        }\r\n        .lwrp .lwrp-list-row-container{\r\n            display: flex;\r\n            justify-content: space-between;\r\n        }\r\n        .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n            width: calc(33% - 20px);\r\n        }\r\n        .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n            \r\n            max-width: 150px;\r\n        }\r\n        .lwrp .lwrp-list-item img{\r\n            max-width: 100%;\r\n            height: auto;\r\n            object-fit: cover;\r\n            aspect-ratio: 1 \/ 1;\r\n        }\r\n        .lwrp .lwrp-list-item.lwrp-empty-list-item{\r\n            background: initial !important;\r\n        }\r\n        .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n        .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n            \r\n            \r\n            \r\n            \r\n        }@media screen and (max-width: 480px) {\r\n            .lwrp.link-whisper-related-posts{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-title{\r\n                \r\n                \r\n            }.lwrp .lwrp-description{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-list-multi-container{\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-multi-container ul.lwrp-list{\r\n                margin-top: 0px;\r\n                margin-bottom: 0px;\r\n                padding-top: 0px;\r\n                padding-bottom: 0px;\r\n            }\r\n            .lwrp .lwrp-list-double,\r\n            .lwrp .lwrp-list-triple{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-row-container{\r\n                justify-content: initial;\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n                \r\n                max-width: initial;\r\n            }\r\n            .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n            .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n                \r\n                \r\n                \r\n                \r\n            };\r\n        }<\/style>\r\n<div id=\"link-whisper-related-posts-widget\" class=\"link-whisper-related-posts lwrp\">\r\n            <div class=\"lwrp-title\">\u76f8\u5173\u6587\u7ae0<\/div>    \r\n        <div class=\"lwrp-list-container\">\r\n                                <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e4%b8%8d%e5%90%8c%e7%b1%bb%e5%9e%8b%e7%9a%84%e6%96%87%e4%bb%b6%e5%8f%8a%e5%85%b6%e4%bd%bf%e7%94%a8%e6%97%b6%e6%9c%ba\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u4e0d\u540c\u7c7b\u578b\u6587\u4ef6\u53ca\u5176\u9002\u7528\u573a\u666f<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e4%bd%bf%e7%94%a8canva%e8%a3%85%e9%a5%b0shopee%e4%bb%a5%e5%90%b8%e5%bc%95%e7%9c%bc%e7%90%83%e7%9a%84%e6%8c%87%e5%8d%97\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u4f7f\u7528 Canva \u88c5\u9970 Shopee \u5e97\u94fa\u7684\u6307\u5357\uff0c\u201c\u7b80\u5355\u5982\u5403\u7cd6\u201d<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e5%9c%b0%e6%96%b9%e8%90%a5%e9%94%80%e5%a6%82%e4%bd%95%e5%90%b8%e5%bc%95%e5%8c%ba%e5%9f%9f%e5%ae%a2%e6%88%b7\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u5728DPS.MEDIA\uff0c\u6211\u4eec\u4e0d\u5bfb\u627e\u201c\u666e\u901a\u201d\u7684\u5b9e\u4e60\u751f\u3002\u6211\u4eec\u4e3a\u90a3\u4e9b\u771f\u6b63\u6e34\u671b\u6311\u6218\u81ea\u6211\u3001\u5e0c\u671b\u7559\u4e0b\u5370\u8bb0\u5e76<\/span><\/a><\/div>                <\/div>\r\n                            <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e4%b8%ba%e5%b0%8f%e5%ba%97%e6%9e%84%e5%bb%ba%e9%80%80%e8%b4%a7%e4%ba%a4%e6%8e%a5%e6%b5%81%e7%a8%8b%e7%9a%84%e6%96%b9%e6%b3%95\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u4e3a\u5c0f\u5e97\u5efa\u7acb\u6536\u8d27\u9000\u8d27\u6d41\u7a0b\u7684\u65b9\u6cd5<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/%e4%b8%ba%e8%ae%be%e8%ae%a1%e6%9c%8d%e5%8a%a1%e4%ba%ba%e5%91%98%e4%bd%bf%e7%94%a8google%e7%bd%91%e7%ab%99%e7%9a%84%e4%b8%aa%e4%ba%ba%e4%bd%9c%e5%93%81%e9%9b%86\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">\u4f7f\u7528 Google Sites \u5236\u4f5c\u7684\u4e2a\u4eba\u4f5c\u54c1\u96c6\uff0c\u9002\u5408\u8bbe\u8ba1\u670d\u52a1\u4ece\u4e1a\u8005<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/zh\/shopee%e5%b1%95%e4%bd%8d%e8%ae%be%e8%ae%a1%e7%ac%a6%e5%90%88seo%e6%a0%87%e5%87%86\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Shopee\u5e97\u94fa\u8bbe\u8ba1SEO\u6807\u51c6\u79d8\u8bc0\uff0c\u52a9\u529b\u9500\u552e\u989d\u663e\u8457\u63d0\u5347<\/span><\/a><\/div>                <\/div>\r\n                <\/div>\r\n<\/div>","protected":false},"excerpt":{"rendered":"<p>H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Mailcow: Dockerized tr\u00ean VPS ch\u1ea1y Nginx Proxy Manager (NPM) v\u00e0 Portainer. N\u00f3 bao g\u1ed3m c\u00e1c s\u1eeda l\u1ed7i cho c\u00e1c v\u1ea5n \u0111\u1ec1 ph\u1ed5 bi\u1ebfn nh\u01b0 V\u00f2ng l\u1eb7p Chuy\u1ec3n h\u01b0\u1edbng (Redirect Loops) v\u00e0 L\u1ed7i Gateway Timeout 504. 1. Y\u00eau c\u1ea7u Ti\u00ean quy\u1ebft VPS c\u00e0i s\u1eb5n Docker &#038; [&hellip;]<\/p>","protected":false},"author":1,"featured_media":35655,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1758,1793,1794],"tags":[],"class_list":["post-35658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-guides","category-mailcow"],"acf":[],"rankmath_keywords":{"primary":"","secondary":[""]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"","seo_keywords":{"primary":"","secondary":[""]},"_links":{"self":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/35658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/comments?post=35658"}],"version-history":[{"count":0,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/posts\/35658\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media\/35655"}],"wp:attachment":[{"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/media?parent=35658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/categories?post=35658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dps.media\/zh\/wp-json\/wp\/v2\/tags?post=35658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}