{"id":963,"date":"2024-06-15T15:31:01","date_gmt":"2024-06-15T07:31:01","guid":{"rendered":"https:\/\/www.mailabc.cn\/blog\/?p=963"},"modified":"2024-07-21T14:45:46","modified_gmt":"2024-07-21T06:45:46","slug":"postfixdovecotroundcube%e5%bc%80%e6%ba%90%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f%e6%90%ad%e5%bb%ba%e7%b3%bb%e5%88%974%ef%bc%9adovecot%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae","status":"publish","type":"post","link":"https:\/\/www.mailabc.cn\/blog\/2024\/06\/15\/postfixdovecotroundcube%e5%bc%80%e6%ba%90%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f%e6%90%ad%e5%bb%ba%e7%b3%bb%e5%88%974%ef%bc%9adovecot%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae\/","title":{"rendered":"Postfix+Dovecot+Roundcube\u5f00\u6e90\u90ae\u4ef6\u7cfb\u7edf\u642d\u5efa\u7cfb\u52174\uff1aDovecot\u5b89\u88c5\u914d\u7f6e"},"content":{"rendered":"<div id=\"sc_notice\">\u672c\u7cfb\u5217\u6587\u7ae0\u4e3b\u8981\u8ba8\u8bba\u57fa\u4e8ePostfix+Dovecot+Roundcube\u642d\u5efa\u5f00\u6e90\u90ae\u4ef6\u7cfb\u7edf\u7684\u65b9\u6848\u3002\u4e3a\u4e86\u8d34\u5408\u5b9e\u9645\u9700\u8981\uff0c\u4ee5\u865a\u62df\u90ae\u4ef6\u7528\u6237\u4e3a\u57fa\u7840\uff0c\u901a\u8fc7MariaDB\u6570\u636e\u5e93\u6765\u7ba1\u7406\u90ae\u4ef6\u7528\u6237\u3002\u8bf7\u6ce8\u610f\u9605\u8bfb\u524d\u540e\u6587\u3002<\/div>\n<p><strong>\u672c\u7cfb\u5217\u6587\u7ae0\uff1a<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/www.mailabc.cn\/blog\/2024\/06\/15\/postfixdovecotroundcube%e5%bc%80%e6%ba%90%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f%e6%90%ad%e5%bb%ba%e7%b3%bb%e5%88%971%ef%bc%9a%e7%9b%ae%e6%a0%87%e5%8f%8a%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87\/\">1. \u76ee\u6807\u53ca\u73af\u5883\u51c6\u5907<\/a><\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/www.mailabc.cn\/blog\/2024\/06\/15\/postfixdovecotroundcube%e5%bc%80%e6%ba%90%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f%e6%90%ad%e5%bb%ba%e7%b3%bb%e5%88%972%ef%bc%9amariadb%e6%95%b0%e6%8d%ae%e5%ba%93%e9%85%8d%e7%bd%ae%ef%bc%88mysql%ef%bc%89\/\">2. MariaDB\u6570\u636e\u5e93\u914d\u7f6e\uff08MySQL\uff09<\/a><\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/www.mailabc.cn\/blog\/2024\/06\/15\/postfixdovecotroundcube%e5%bc%80%e6%ba%90%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f%e6%90%ad%e5%bb%ba%e7%b3%bb%e5%88%973%ef%bc%9apostfix%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae\/\">3. Postfix\u5b89\u88c5\u914d\u7f6e<\/a><\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/www.mailabc.cn\/blog\/2024\/06\/15\/postfixdovecotroundcube%e5%bc%80%e6%ba%90%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f%e6%90%ad%e5%bb%ba%e7%b3%bb%e5%88%974%ef%bc%9adovecot%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae\/\">4. Dovecot\u5b89\u88c5\u914d\u7f6e<\/a><\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/www.mailabc.cn\/blog\/2024\/06\/15\/postfixdovecotroundcube%e5%bc%80%e6%ba%90%e9%82%ae%e4%bb%b6%e7%b3%bb%e7%bb%9f%e6%90%ad%e5%bb%ba%e7%b3%bb%e5%88%975%ef%bc%9aroundcube%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae\/\">5. Roundcube\u5b89\u88c5\u914d\u7f6e<\/a><\/p>\n<h2>1. Dovecot\u5b89\u88c5<\/h2>\n<p>\u5b89\u88c5Dovecot\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">yum -y install dovecot dovecot-mysql<\/pre>\n<p>\u542f\u52a8\u670d\u52a1\u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\u52a8\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">systemctl start dovecot\r\nsystemctl enable dovecot<\/pre>\n<h2>2. Dovecot\u914d\u7f6e<\/h2>\n<p>Dovecot\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55\uff1a\/etc\/dovecot\uff0c\u5728\u8be5\u76ee\u5f55\u4e2ddovecot.conf\u548cconf.d\u76ee\u5f55\u4e0b\u7684\u914d\u7f6e\u6587\u4ef6\u5f88\u91cd\u8981\uff0c\u4e0b\u9762\u5206\u522b\u505a\u914d\u7f6e\u4ecb\u7ecd\u3002<\/p>\n<h3>2.1 \/etc\/dovecot\/dovecot.conf \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\u8be5\u914d\u7f6e\u6587\u4ef6\u662fdovecot\u7684\u4e3b\u914d\u7f6e\uff0c\u53bb\u6389\u6ce8\u91ca\uff0c\u76f8\u5bf9\u7b80\u5355\u3002\u4e3b\u8981\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># \u542f\u52a8imap\u3001pop3\u3001lmtp\u534f\u8bae\r\nprotocols = imap lmtp pop3\r\n# \u76d1\u542c\u6240\u6709\u5730\u5740\uff0c\u5305\u542bipv4\u548cipv6\r\nlisten = *, ::\r\n# \u6700\u5927\u8fde\u63a5\u6570\u9650\u5236\r\nmail_max_userip_connections = 50\r\n# \u5305\u542bconf.d\u76ee\u5f55\u4e0b\u6240\u6709\u7684.conf\u914d\u7f6e\u6587\u4ef6\r\n!include conf.d\/*.conf\r\n!include_try local.conf<\/pre>\n<h3>2.2 \/etc\/dovecot\/conf.d\/10-mail.conf\u00a0 \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\u589e\u52a0\u6216\u4fee\u6539\u5982\u4e0b\u914d\u7f6e\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># \u90ae\u4ef6\u5b58\u50a8\u4f4d\u7f6e\uff0c%d\u8868\u793a\u57df\u540d\uff0c%n\u8868\u793a\u7528\u6237\u540d\r\nmail_location = maildir:\/var\/mail\/vhosts\/%d\/%n\r\n# \/var\/mail\u7684\u6743\u9650\u7ec4\u8bbe\u7f6e\u4e3amail\r\nmail_privileged_group = mail<\/pre>\n<h3>2.3 \u7528\u6237\u53ca\u76ee\u5f55\u914d\u7f6e<\/h3>\n<p>\u6dfb\u52a0\u7528\u6237\u548c\u7ec4\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">groupadd -g 5000 vmail\r\nuseradd -g vmail -u 5000 vmail -d \/var\/mail<\/pre>\n<p>\u521b\u5efa\u57df\u540d\u76ee\u5f55\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># \u57df\u540d\u9700\u8981\u6839\u636e\u5b9e\u9645\u66f4\u6362\r\nmkdir -p \/var\/mail\/mailabc.cn<\/pre>\n<p>\u8bbe\u7f6e\u76ee\u5f55\u6240\u6709\u8005\u548c\u6240\u6709\u7ec4\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">chown -R vmail:vmail \/var\/mail\/mailabc.cn\r\nchown -R vmail:dovecot \/etc\/dovecot\r\nchmod -R o-rwx \/etc\/dovecot<\/pre>\n<h3>2.4 \/etc\/dovecot\/conf.d\/10-auth.conf \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\u6dfb\u52a0\u6216\u4fee\u6539\u5982\u4e0b\u914d\u7f6e\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># \u7981\u7528\u660e\u6587\u5bc6\u7801\r\ndisable_plaintext_auth = yes\r\n# \u5bc6\u7801\u6388\u6743\u673a\u5236\u8bbe\u7f6e\u4e3a\u660e\u6587\uff0c\u5373\u5bc6\u7801\u672c\u8eab\u4e0d\u505a\u52a0\u5bc6\uff0c\u6211\u4eec\u5df2\u7ecf\u542f\u7528\u4e86TLS\u4f20\u8f93\u52a0\u5bc6\r\nauth_mechanisms = plain login\r\n# \u5f15\u7528\u8be5\u914d\u7f6e\u6587\u4ef6\u542f\u7528MySQL\u6388\u6743\r\n!include auth-sql.conf.ext\r\n# \u5c4f\u853d\u7cfb\u7edf\u6388\u6743\u7684\u914d\u7f6e\r\n#!include auth-system.conf.ext<\/pre>\n<h3>2.5 \/etc\/dovecot\/conf.d\/auth-sql.conf.ext \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\u4fee\u6539\u5982\u4e0b\u914d\u7f6e\u6bb5\u5185\u5bb9\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">passdb {\r\n  driver = sql\r\n  # \u8fd9\u91cc\u5f15\u5165\u4e0b\u9762\u7684\u914d\u7f6e\u6587\u4ef6\u4f5c\u4e3amysql\u7684\u76f8\u5173\u53c2\u6570\r\n  args = \/etc\/dovecot\/dovecot-sql.conf.ext\r\n}\r\nuserdb {\r\n  # \u7528\u6237\u6570\u636e\u91c7\u7528static (\u9759\u6001) \u65b9\u5f0f\uff0c\u901a\u5e38\uff0cSQL\u6570\u636e\u5e93\u4e5f\u53ef\u4ee5\u505a\u8fd9\u4ef6\u4e8b\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5b83\u5f97\u5230\u7528\u6237\u7684UID\uff0cGID\u548c\u4e3b\u76ee\u5f55\u3002\u4f46\u6b64\u5904\u5982\u679c\u6211\u4eec\u4ec5\u4f7f\u7528\u9759\u6001UID\u548cGID\uff0c\u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528\u6a21\u677f\u6307\u5b9a\u4e3b\u76ee\u5f55\uff0c\u5b83\u4f1a\u6bd4SQL\u65b9\u5f0f\u7565\u5feb\u4e00\u4e9b\u3002\r\n  driver = static\r\n  args = uid=vmail gid=vmail home=\/var\/mail\/vhosts\/%d\/%n\r\n}<\/pre>\n<h3>2.6 \/etc\/dovecot\/dovecot-sql.conf.ext \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\/etc\/dovecot\/conf.d\/auth-sql.conf.ext \u5f15\u7528\u4e86\u8be5\u914d\u7f6e\u6587\u4ef6\uff0c\u7528\u4e8e\u67e5\u8be2\u7528\u6237\u548c\u5bc6\u7801\u3002\u5177\u4f53\u5185\u5bb9\u5982\u4e0b\uff08\u5176\u4e2d\u7684\u6570\u636e\u5e93\u540d\u79f0\u3001\u6388\u6743\u7528\u6237\u53ca\u5bc6\u7801\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\uff09\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">driver = mysql\r\nconnect = host=127.0.0.1 dbname=maildb user=mailuser password=admin@123\r\ndefault_pass_scheme = SHA512-CRYPT\r\npassword_query = SELECT email as user, password FROM vt_user WHERE email='%u';<\/pre>\n<p>\u9644\u4ef6\u8bf4\u660e\uff1a\u67e5\u8be2\u5fc5\u987b\u8fd4\u56de\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u5e76\u4e14 Dovecot \u5fc5\u987b\u5728\u00a0<code class=\"literal\">user<\/code>\u00a0\u548c\u00a0<code class=\"literal\">password<\/code>\u00a0\u53d8\u91cf\u4e2d\u4f7f\u7528\u8fd9\u4e9b\u503c\u3002\u56e0\u6b64\uff0c\u5982\u679c\u6570\u636e\u5e93\u4f7f\u7528\u4e0d\u540c\u7684\u5217\u540d\u79f0\uff0c\u8bf7\u4f7f\u7528\u00a0<code class=\"literal\">AS<\/code>\u00a0SQL \u547d\u4ee4\u91cd\u547d\u540d\u7ed3\u679c\u4e2d\u7684\u5217\u3002<\/p>\n<h3>2.7 \/etc\/dovecot\/conf.d\/10-master.conf \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\u8fd9\u4e2a\u6587\u4ef6\u4e3b\u8981\u4f5c\u7528\u662f\u4e3a\u4e86\u6253\u901adovecot\u548cpostfix\u7684\u5173\u8054\uff0c\u6388\u6743postfix\u901a\u8fc7lmtp\u534f\u8bae\u8bbf\u95ee\u5c5e\u4e8edovecot\u7684\u5730\u76d8\uff0c\u8bbf\u95ee\u6743\u9650\u662f0600\uff0c\u8868\u793a\u6709\u8bfb\u5199\u6743\u9650\uff0c\u4f46\u65e0\u6267\u884c\u6743\u9650\u3002\u8fd9\u4e2a\u6587\u4ef6\u7684\u6e90\u6587\u4ef6\u4e5f\u6bd4\u8f83\u5e9e\u6742\uff0c\u91cc\u9762\u5bf9\u591a\u4e2a\u534f\u8bae\u90fd\u6709\u8bbe\u5b9a\uff0c\u4f46\u662f\u5982\u679c\u4f60\u5168\u90e8\u628a\u5b83\u4eec\u5220\u4e86\u4e5f\u6ca1\u5173\u7cfb\uff0c\u7b49\u4e8e\u91c7\u7528\u9ed8\u8ba4\u8bbe\u7f6e\u3002<\/p>\n<p>\u53c2\u8003\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">service lmtp {\r\n  unix_listener \/var\/spool\/postfix\/private\/dovecot-lmtp {\r\n   mode = 0600\r\n   user = postfix\r\n   group = postfix\r\n  }\r\n}\r\n\r\nservice auth {\r\n  unix_listener \/var\/spool\/postfix\/private\/auth {\r\n    mode = 0666\r\n    user = postfix\r\n    group = postfix\r\n  }\r\n\r\n  unix_listener auth-userdb {\r\n   mode = 0600\r\n   user = vmail\r\n  }\r\n  user = dovecot\r\n}\r\n\r\nservice auth-worker {\r\n  user = vmail\r\n}<\/pre>\n<h3>2.8 \/etc\/dovecot\/conf.d\/10-ssl.conf \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\u8be5\u914d\u7f6e\u6587\u4ef6\u4e3b\u8981\u7528\u6765\u914d\u7f6essl\u534f\u8bae\u53ca\u76f8\u5173\u8bc1\u4e66\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ssl = required\r\n# \u6307\u5b9a\u8bc1\u4e66\u4f4d\u7f6e\uff0c\u548cPostfix\u91c7\u7528\u76f8\u540c\u7684\u8bc1\u4e66\r\nssl_cert = &lt;\/var\/sslcert\/www.mailabc.cn.pem\r\nssl_key = &lt;\/var\/sslcert\/www.mailabc.cn.key\r\nssl_cipher_list = PROFILE=SYSTEM<\/pre>\n<h3>2.9 \/etc\/dovecot\/conf.d\/15-mailboxes.conf \u914d\u7f6e\u6587\u4ef6:<\/h3>\n<p>\u8fd9\u4e2a\u6587\u4ef6\u662f\u7528\u6765\u6307\u5b9a\u6536\u4ef6\u7bb1\u7684\u547d\u540d\u7a7a\u95f4\u7684\uff0cauto = create\u8868\u793a\u5f53\u8fd9\u4e9b\u90ae\u7bb1\u90fd\u6ca1\u6709\u7684\u65f6\u5019\uff0c\u5c31\u81ea\u52a8\u521b\u5efa\u5b83\uff0c\u8fd9\u91cc\u6307\u5b9a\u7684\u90fd\u662f\u5e38\u89c4\u7684\uff0c\u6bd4\u5982\u6536\u4ef6\u7bb1\uff0c\u5df2\u53d1\u9001\uff0c\u5783\u573e\u7bb1\uff0c\u5df2\u5220\u9664\u7b49\u7b49\uff0c\u5982\u679c\u9700\u8981\u522b\u7684\u79cd\u7c7b\uff0c\u8bf7\u81ea\u884c\u7814\u7a76\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">namespace inbox {\r\n  # inbox = yes\u914d\u7f6e\u662f\u589e\u52a0\u7684\uff0c\u636e\u8bf4\u4e0d\u52a0\u4f1a\u6709\u95ee\u9898\r\n  inbox = yes\r\n  mailbox Drafts {\r\n    auto = create\r\n    special_use = \\Drafts\r\n  }\r\n  mailbox Junk {\r\n    auto = create\r\n    special_use = \\Junk\r\n  }\r\n  mailbox Trash {\r\n    auto = create\r\n    special_use = \\Trash\r\n  }\r\n\r\n  mailbox Sent {\r\n    auto = create\r\n    special_use = \\Sent\r\n  }\r\n  mailbox \"Sent Messages\" {\r\n    auto = create\r\n    special_use = \\Sent\r\n  }\r\n}<\/pre>\n<h2>3. \u6d4b\u8bd5\u9a8c\u8bc1<\/h2>\n<p>\u81f3\u6b64\uff0cDovecot \u914d\u7f6e\u5df2\u5b8c\u6bd5\uff0c\u53ef\u4ee5\u91cd\u542f\u670d\u52a1\u8fdb\u884c\u6d4b\u8bd5\u9a8c\u8bc1\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">stystemctl restart postfix dovecot<\/pre>\n<h3>3.1 \u7aef\u53e3\u76d1\u542c\u68c0\u67e5<\/h3>\n<p>\u901a\u8fc7netstat\u547d\u4ee4\u67e5\u770b\uff0c\u53ef\u4ee5\u770b\u5230110\u3001143\u3001993\u3001995\u3001587\u300125\u3001465\u7aef\u53e3\u76d1\u542c\u5747\u6b63\u5e38\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[root@localhost ~]# netstat -tuanp | grep -i listen\r\ntcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      2331\/dovecot        \r\ntcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      2331\/dovecot             \r\ntcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      795\/mariadbd        \r\ntcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      1692\/master         \r\ntcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      2331\/dovecot        \r\ntcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      2331\/dovecot            \r\ntcp6       0      0 :::25                   :::*                    LISTEN      1692\/master         \r\ntcp6       0      0 :::993                  :::*                    LISTEN      2331\/dovecot        \r\ntcp6       0      0 :::995                  :::*                    LISTEN      2331\/dovecot              \r\ntcp6       0      0 :::3306                 :::*                    LISTEN      795\/mariadbd        \r\ntcp6       0      0 :::587                  :::*                    LISTEN      1692\/master         \r\ntcp6       0      0 :::110                  :::*                    LISTEN      2331\/dovecot        \r\ntcp6       0      0 :::143                  :::*                    LISTEN      2331\/dovecot        \r\ntcp6       0      0 :::465                  :::*                    LISTEN      1692\/master<\/pre>\n<h3>3.2 \u670d\u52a1\u8fde\u901a\u6027\u68c0\u67e5<\/h3>\n<p>smtp\u670d\u52a1\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[root@localhost ~]# telnet 0 25\r\nTrying 0.0.0.0...\r\nConnected to 0.\r\nEscape character is '^]'.\r\n220 mail.mailabc.cn ESMTP Postfix<\/pre>\n<p>pop3\u670d\u52a1\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[root@localhost ~]# telnet 0 110\r\nTrying 0.0.0.0...\r\nConnected to 0.\r\nEscape character is '^]'.\r\n+OK Dovecot ready.<\/pre>\n<p>imap\u670d\u52a1\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[root@localhost ~]# telnet 0 143\r\nTrying 0.0.0.0...\r\nConnected to 0.\r\nEscape character is '^]'.\r\n* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.<\/pre>\n<h3>3.3 \u5ba2\u6237\u914d\u7f6e\u6d4b\u8bd5<\/h3>\n<p>Foxmail\u914d\u7f6eimap\u534f\u8bae\uff0c\u5e76\u8fdb\u884c\u6536\u53d1\u6d4b\u8bd5\u3002<\/p>\n<p><a href=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2024\/06\/2024061505253635.jpg\" rel=\"box\" class=\"fancybox\"><img class=\"aligncenter wp-image-935\" data-original=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2024\/06\/2024061505253635.jpg\"  alt=\"Foxmail\u5ba2\u6237\u7aef\u914d\u7f6e\" width=\"640\" height=\"480\" \/><\/a><\/p>\n<noscript><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-935\" src=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2024\/06\/2024061505253635.jpg\" alt=\"Foxmail\u5ba2\u6237\u7aef\u914d\u7f6e\" width=\"640\" height=\"480\" \/><\/a><\/p><\/noscript>\n<p>\u81f3\u6b64\uff0cDovecot\u914d\u7f6e\u5b8c\u6bd5\u3002<\/p>\n<p>\u8fd4\u56de\u9876\u90e8\u67e5\u770b\u672c\u7cfb\u5217\u5176\u4ed6\u6587\u7ae0\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7cfb\u5217\u6587\u7ae0\uff1a 1. \u76ee\u6807\u53ca\u73af\u5883\u51c6\u5907 2. MariaDB\u6570\u636e\u5e93\u914d\u7f6e\uff08MySQL\uff09 3. Postfix\u5b89\u88c5\u914d\u7f6e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":954,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[121],"tags":[103,8,7],"class_list":["post-963","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dovecot","tag-dovecot","tag-imap","tag-pop3"],"_links":{"self":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts\/963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/comments?post=963"}],"version-history":[{"count":5,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts\/963\/revisions"}],"predecessor-version":[{"id":981,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts\/963\/revisions\/981"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/media\/954"}],"wp:attachment":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/media?parent=963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/categories?post=963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/tags?post=963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}