{"id":311,"date":"2012-09-17T13:14:26","date_gmt":"2012-09-17T05:14:26","guid":{"rendered":"http:\/\/www.sulabs.net\/?p=311"},"modified":"2020-08-28T18:40:58","modified_gmt":"2020-08-28T10:40:58","slug":"postfixdovecot2-xpostfixadminroundcube-%e9%82%ae%e4%bb%b6%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%85%8d%e7%bd%ae","status":"publish","type":"post","link":"https:\/\/www.sulabs.net\/?p=311","title":{"rendered":"Postfix+Dovecot2.x+Postfixadmin+Roundcube \u90ae\u4ef6\u670d\u52a1\u5668\u914d\u7f6e"},"content":{"rendered":"<p><a href=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/postfixadmin.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-315\" title=\"postfixadmin\" src=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/postfixadmin-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\"><\/a><\/p>\n<p>\u4e4b\u524d\u4e00\u76f4\u4f7f\u7528Postfix+Courier+Sasl+Extmail \u90ae\u4ef6\u670d\u52a1\u5668\u65b9\u6848\uff0c\u5e76\u914d\u7f6e\u4e86MailDrop \u505a\u90ae\u4ef6\u8f6c\u53d1\u548cMailman\u90ae\u4ef6\u5217\u8868\uff0c\u5728\u4e24\u5e74\u591a\u65f6\u95f4\u91cc\uff0c\u8fd0\u884c\u826f\u597d\u3002\u53ef\u662f\u73b0\u751f\u4ea7\u73af\u5883\u4f7f\u7528Nginx \u8d8a\u6765\u8d8a\u591a\uff0c\u4e3a\u4e86\u4e00\u4e2aWebmail \u5355\u72ec\u914d\u7f6eApache+Perl \u8d44\u6e90\u5f00\u9500\u5927\uff0cCourier+Sasl \u914d\u7f6e\u4e5f\u76f8\u5bf9\u6bd4\u8f83\u7e41\u7410\uff0c\u62bd\u4e86\u4e24\u5929\u65f6\u95f4\uff0c\u7ed3\u5408\u7f51\u4e0a\u4e00\u4e9b\u5b9e\u4f8b\uff0c\u5bf9\u90ae\u4ef6\u670d\u52a1\u5668\u505a\u4e86\u4e00\u4e9b\u6539\u8fdb\u3002<br \/>\n<!--more--><br \/>\nDovecot \u4e0d\u4ec5\u53ef\u4ee5\u505aPOP3,IMAP\u670d\u52a1\u5668\uff0c\u4e5f\u53ef\u4ee5\u7528\u6765\u505aSMTP\u9a8c\u8bc1\uff0c\u7701\u53bb\u4e86Cyrus Sasl\uff0c\u5e76\u4e14\u6548\u7387\u8d44\u6e90\u5360\u7528\u4e5f\u76f8\u5bf9Courier \u597d\u5f88\u591a\uff0c\u540c\u65f6\u652f\u6301LOGIN\u9a8c\u8bc1\u65b9\u5f0f\uff0c\u53ef\u4ee5\u6ee1\u8db3Outlook,Foxmail \u5ba2\u6237\u7aef\u767b\u5f55\u8bbf\u95ee\uff0c\u672c\u6587\u914d\u7f6e\u4e86SMTP\u53d1\u4ef6\u8ba4\u8bc1\uff0cPOP3\u63a5\u6536\u8ba4\u8bc1\uff0cWEBMail&nbsp;\u529f\u80fd\uff0c\u90ae\u4ef6\u8f6c\u53d1\uff0c\u9632\u75c5\u6bd2\u672a\u6709\u8fdb\u884c\u914d\u7f6e\u3002<\/p>\n<p>\u8f6f\u4ef6\u5305\u8bf4\u660e:<br \/>\nPostfix-2.8.12.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Postfix MTA(\u90ae\u4ef6\u4f20\u8f93\u4ee3\u7406)<br \/>\nDovecot-2.1.8.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IMAP \u548c POP3 \u90ae\u4ef6\u670d\u52a1\u5668<br \/>\nPostfixadmin-2.3.5.tar.gz&nbsp;&nbsp;&nbsp; \u91c7\u7528PHP\u7f16\u5199\u7684\u5f00\u6e90WEB\u90ae\u7bb1\u53ca\u57df\u540d\u8d26\u53f7\u7ba1\u7406\u5de5\u5177<br \/>\nRoundcubemail-0.8.1.tar.gz&nbsp; \u91c7\u7528PHP\u7f16\u5199\u7684\u5f00\u6e90IMAP\u90ae\u4ef6WEB\u5ba2\u6237\u7aef<\/p>\n<p>1.\u51c6\u5907\u5de5\u4f5c\uff1a<br \/>\n\u5b89\u88c5\u914d\u7f6e\u5728 CentOS 6.3 x64 \u6700\u5c0f\u5316\u5b89\u88c5\u73af\u5883\u4e0a\u8fdb\u884c\uff0c\u5148\u5b89\u88c5\u597d Nginx(Apache)+PHP+MySQL\uff0cRoundcube&nbsp; \u9700\u8981PHP IMAP\u6269\u5c55\u652f\u6301\uff0c\u5982\u679c\u5728\u7f16\u8bd1PHP\u65f6\u6ca1\u5f00\u542fIMAP\u652f\u6301\uff0c\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u65b9\u6cd5\u6dfb\u52a0\u6269\u5c55<\/p>\n<pre class=\"brush: shell; gutter: true\"># yum install libc-client-devel libc-client<\/pre>\n<p>\u5b89\u88c5 php-imap \u6269\u5c55\u4f9d\u8d56\u7684\u7684\u5ec9\u5305<br \/>\n\u8fdb\u5165\u5230php\u6e90\u7801\u5305 imap \u6269\u5c55\u5e93\u8def\u5f84\u4e0b \u5982 \/opt\/php-5.3.12\/ext\/imap&nbsp; \u6267\u884c<\/p>\n<pre class=\"brush: shell; gutter: true\"># \/usr\/local\/php\/bin\/phpize \r\n# .\/configure --with-php-config=\/usr\/local\/php\/bin\/php-config --with-kerberos --with-imap-ssl<\/pre>\n<p>\u68c0\u67e5\u7cfb\u7edf\u914d\u7f6e\u8fc7\u7a0b\u4e2d\u56fd\u5982\u679c\u63d0\u793a\u51fa\u9519\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u5c06libc-client \u5e93\u505a\u4e2a\u94fe\u63a5\u5230lib&nbsp;\u4e0b<\/p>\n<pre class=\"brush: shell; gutter: true\"># ln -s \/usr\/lib64\/libc-client.so \/usr\/lib\/libc-client.so\r\n# make &amp;&amp; make install<\/pre>\n<p>\u5b89\u88c5\u540e\u4fee\u6539 php.ini \u7684 extension_dir\u8def\u5f84 \uff0c\u5e76\u52a0\u5165 extension=\"imap.so\"&nbsp; \u6269\u5c55<br \/>\n\u5378\u8f7d\u7cfb\u7edf\u81ea\u5e26\u7684sendmail \u6216 postfix<\/p>\n<pre># yum remove sendmail postfix<\/pre>\n<p>2. \u7f16\u8bd1\u5b89\u88c5Postfix<\/p>\n<pre class=\"brush: shell; gutter: true\"># yum -y install db4-devel\r\n\/\/\u5b89\u88c5\u4f9d\u8d56\u7684DB4\u5f00\u53d1\u5305\r\n\r\n# useradd -M -s \/sbin\/nologin postfix         \r\n# useradd -M -s \/sbin\/nologin postdrop\r\n\/\/\u6dfb\u52a0Postfix,maildrop \u7528\u6237\r\n\r\n# tar zxf postfix-2.8.12.tar.gz\r\n# cd postfix-2.8.12\/\r\n# make makefiles &#039;CCARGS=-DHAS_MYSQL -I\/usr\/local\/mysql\/include -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\&quot;dovecot\\&quot;&#039; &#039;AUXLIBS=-L\/usr\/local\/mysql\/lib -lmysqlclient -lz -lm -lssl -lcrypto&#039;\r\n\/\/\u5982\u679cMySQL \u5b89\u88c5\u5728\u5176\u4ed6\u8def\u5f84\uff0c\u8bf7\u6ce8\u610f\u4fee\u6539MySQL Include \u548c lib \u8def\u5f84\r\n\r\n# make\r\n# make install<\/pre>\n<p>\u5b89\u88c5\u8def\u5f84\u548c\u53c2\u6570\u914d\u7f6e<br \/>\ninstall_root:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;\/\/\u76f8\u5bf9\u76ee\u5f55<br \/>\ntempdir:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/tmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\u4e34\u65f6\u76ee\u5f55<br \/>\nconfig_directory:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/etc\/postfix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u914d\u7f6e\u6587\u4ef6\u4f4d\u7f6e<br \/>\ncommand_directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/usr\/local\/postfix\/sbin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\u547d\u4ee4\u6267\u884c\u8def\u5f84<br \/>\ndaemon_directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/usr\/local\/postfix\/libexec&nbsp;&nbsp; \/\/Daemon\u8def\u5f84<br \/>\ndata_directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/var\/lib\/postfix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\u90ae\u4ef6\u6570\u636e<br \/>\nhtml_directory&nbsp; no mail_owner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; postfix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/postfix \u6240\u6709\u8005\u8d26\u53f7<br \/>\nmailq_path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/usr\/bin\/mailq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/mailq \u4f4d\u7f6e<br \/>\nmanpage_directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;\/usr\/local\/postfix\/man&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5e2e\u52a9\u6587\u6863<br \/>\nnewaliases_path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/usr\/bin\/newaliases&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/newaliases \u4f4d\u7f6e<br \/>\nqueue_directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/var\/spool\/postfix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u961f\u5217\u8def\u5f84<br \/>\nreadme_directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no<br \/>\nsendmail_path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/usr\/sbin\/sendmail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/Sendmail \u8def\u5f84<br \/>\nsetgid_group:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; postdrop<\/p>\n<p>3.\u914d\u7f6ePostfix<br \/>\n# vi \/etc\/postfix\/main.cf&nbsp;&nbsp;&nbsp; \u67e5\u627e\u5e76\u4fee\u6539 mynetworks = all \u5426\u5219SMTP\u53d1\u4ef6\u8ba4\u8bc1\u4e0d\u751f\u6548<br \/>\n\u5728\u6700\u5e95\u90e8\u6dfb\u52a0\u865a\u62df\u90ae\u7bb1\u914d\u7f6e\u548c\u9a8c\u8bc1\u8bbe\u7f6e<\/p>\n<pre class=\"brush: shell; gutter: true\"># Virtual mailbox settings.\r\nvirtual_mailbox_base = \/var\/vmail\r\nvirtual_mailbox_maps = mysql:\/etc\/postfix\/mysql_virtual_mailbox_maps.cf\r\nvirtual_mailbox_domains = mysql:\/etc\/postfix\/mysql_virtual_domains_maps.cf\r\nvirtual_alias_maps = mysql:\/etc\/postfix\/mysql_virtual_alias_maps.cf\r\nvirtual_uid_maps = static:\u90ae\u4ef6POSTFIX\u7528\u6237ID\r\nvirtual_gid_maps = static:\u90ae\u4ef6POSTFIX\u7ec4ID\r\nvirtual_transport = virtual\r\nmessage_size_limit = 10240000\r\nvirtual_mailbox_limit = 209715200\r\nvirtual_create_maildirsize = yes\r\nvirtual_mailbox_extended = yes\r\nvirtual_mailbox_limit_maps = mysql:\/etc\/postfix\/mysql_virtual_limit_maps.cf\r\nvirtual_mailbox_limit_override = yes\r\nvirtual_maildir_limit_message = Sorry, the user&#039;s maildir has exceeded the quota.\r\nvirtual_overquota_bounce = yes\r\n\r\n# SASL settings\r\nsmtpd_sasl_auth_enable = yes\r\nsmtpd_sasl_local_domain = $mydomain\r\nsmtpd_sasl_security_options = noanonymous\r\nsmtpd_sasl_type = dovecot\r\nsmtpd_sasl_path = \/var\/lib\/dovecot\/run\/dovecot\/auth-login\r\nbroken_sasl_auth_clients = yes\r\nsmtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient<\/pre>\n<p>virtual_uid_maps \u548c virtual_gid_maps \u6539\u6210postfix \u7528\u6237\u7684uid\u548cgid \u5982\u679c\u4e0d\u77e5\u9053ID\uff0c\u53ef\u7528 id postfix \u547d\u4ee4\u83b7\u53d6<\/p>\n<p>\u6dfb\u52a0\u6570\u636e\u5e93\u67e5\u8be2\u914d\u7f6e\u6587\u4ef6\uff0c\u6839\u636e\u9700\u8981\u4fee\u6539\u6570\u636e\u5e93\u7528\u6237\u540d\u5bc6\u7801\uff0c\u4e3b\u673a\u540d\uff0c\u6570\u636e\u5e93\u540d\u914d\u7f6e\u4fe1\u606f\uff0c\u5728\u540e\u9762\u521b\u5efaMYSQL\u6570\u636e\u5e93\uff0c\u767b\u5f55\u7528\u6237\u7684\u65f6\u5019\u9700\u8981\u7528\u5230\u3002<\/p>\n<p>\u5efa\u7acb\u6570\u636e\u5e93\u522b\u540d\u67e5\u8be2\u914d\u7f6e\u6587\u4ef6<br \/>\nvi \/etc\/postfix\/mysql_virtual_alias_maps.cf<\/p>\n<pre class=\"brush: shell; gutter: true\">user = postfix\r\npassword = postfixpassword\r\nhosts = localhost\r\ndbname = postfix\r\ntable = alias\r\nselect_field = goto\r\nwhere_field = address\r\nadditional_conditions = and active = &#039;1&#039;\r\n#query = SELECT goto FROM alias WHERE address=&#039;%s&#039; AND active = &#039;1&#039;<\/pre>\n<p>\u5efa\u7acb\u6570\u636e\u5e93\u865a\u62df\u57df\u67e5\u8be2\u914d\u7f6e\u6587\u4ef6<br \/>\nvi \/etc\/postfix\/mysql_virtual_domains_maps.cf<\/p>\n<pre class=\"brush: shell; gutter: true\">user = postfix\r\npassword = postfixpassword\r\nhosts = localhost\r\ndbname = postfix\r\ntable = domain\r\nselect_field = domain\r\nwhere_field = domain\r\nadditional_conditions = and active = &#039;1&#039;\r\n#query = SELECT domain FROM domain WHERE domain=&#039;%s&#039; AND active = &#039;1&#039;<\/pre>\n<p>\u5efa\u7acb\u6570\u636e\u5e93\u90ae\u7bb1\u914d\u989d\u67e5\u8be2\u914d\u7f6e\u6587\u4ef6<br \/>\nvi \/etc\/postfix\/mysql_virtual_mailbox_limit_maps.cf<\/p>\n<pre class=\"brush: actionscript3; gutter: true\">user = postfix\r\npassword = postfixpassword\r\nhosts = localhost\r\ndbname = postfix\r\ntable = mailbox\r\nselect_field = quota\r\nwhere_field = username\r\nadditional_conditions = and active = &#039;1&#039;\r\n#query = SELECT quota FROM mailbox WHERE username=&#039;%s&#039; AND active = &#039;1&#039;<\/pre>\n<p>\u5efa\u7acb\u6570\u636e\u5e93\u865a\u62df\u90ae\u7bb1\u67e5\u8be2\u914d\u7f6e\u6587\u4ef6<br \/>\nvi \/etc\/postfix\/mysql_virtual_mailbox_maps.cf<\/p>\n<pre class=\"brush: actionscript3; gutter: true\">user = postfix\r\npassword = postfixpassword\r\nhosts = localhost\r\ndbname = postfix\r\ntable = mailbox\r\nselect_field = CONCAT(domain,&#039;\/&#039;,maildir)\r\nwhere_field = username\r\nadditional_conditions = and active = &#039;1&#039;\r\n#query = SELECT CONCAT(domain,&#039;\/&#039;,maildir) FROM mailbox WHERE username=&#039;%s&#039; AND active = &#039;1&#039;<\/pre>\n<p>\u542f\u52a8postfix<\/p>\n<pre class=\"brush: shell; gutter: true\"># \/usr\/local\/postfix\/sbin\/postfix start<\/pre>\n<p>4.\u5b89\u88c5 Dovecot<\/p>\n<pre class=\"brush: shell; gutter: true\"># tar zxf dovecot-2.1.8.tar.gz\r\n# cd dovecot-2.1.8\r\n# .\/configure --prefix=\/usr\/local\/dovecot --sysconfdir=\/etc --localstatedir=\/var --with-sql --with-mysql --with-zlib --with-ssl LDFLAGS=-L\/usr\/local\/mysql\/lib\r\n\r\n\/\/\u6307\u5b9a\u5b89\u88c5\u53ca\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\r\n\/\/\u5982\u679cmysql\u5b89\u88c5\u5728\u5176\u4ed6\u4f4d\u7f6e\uff0c\u9700\u8981\u624b\u52a8\u6307\u5b9a mysql lib\u5e93\u8def\u5f84\r\n\r\n# make \r\n# make install\r\n\r\ncp -r \/usr\/local\/dovecot\/share\/doc\/dovecot\/example-config\/* \/etc\/dovecot\/ \r\n\/\/\u590d\u5236\u914d\u7f6e\u6587\u4ef6\u793a\u4f8b\u5230\u914d\u7f6e\u6587\u4ef6\u5939\u4e2d\uff0c\u6b64\u6b65\u9aa4\u4e0d\u662f\u5fc5\u987b\u7684\uff0c\u53ea\u662f\u65b9\u4fbf\u67e5\u9605\uff0c\u540e\u9762\u7684\u914d\u7f6e\u4e0d\u4f1a\u7528\u5230\u8fd9\u4e9b\u6587\u4ef6<\/pre>\n<p>5. \u914d\u7f6e Doevcot<br \/>\nmv \/etc\/dovecot\/dovecot.conf \/etc\/dovecot\/dovecot.old<br \/>\n\u5982\u679c\u590d\u5236\u4e86\u793a\u4f8b\u914d\u7f6e\uff0c\u5148\u6539\u540d\u5907\u4efd<br \/>\nvi \/etc\/dovecot\/dovecot.conf<br \/>\n\u5efa\u7acb\u65b0\u914d\u7f6e\u6587\u4ef6\uff0c\u52a0\u5165\u4ee5\u4e0b\u5185\u5bb9\uff0c\u6b64\u914d\u7f6e\u6587\u4ef6\u53ea\u9002\u7528\u4e8e Doevcot 2.x&nbsp; \u4e0d\u80fd\u7528\u4e8e1.x<\/p>\n<pre class=\"brush: shell; gutter: true\">rotocols = pop3 imap\r\n # \u5f00\u542fpop3 imap listen = *\r\n default_login_user=postfix\r\n default_internal_user=postfix\r\n # \u4f7f\u7528postfix \u7528\u6237\r\ndisable_plaintext_auth = no\r\n log_path = \/var\/log\/dovecot.log\r\n # \u65e5\u5fd7\u8def\u5f84\r\n#info_log_path = \/var\/log\/dovecot.info\r\n log_timestamp = &quot;%Y-%m-%d %H:%M:%S &quot;\r\n ssl = no mail_location = maildir:\/var\/vmail\/%d\/%u\r\n # \u90ae\u4ef6\u5b58\u50a8\u8def\u5f84\r\nmail_privileged_group = mail\r\n first_valid_uid = 502\r\n # postfix \u7528\u6237UID\r\n protocol pop3 {\r\n pop3_uidl_format = %08Xu%08Xv\r\n }\r\n auth_mechanisms = plain login\r\n\r\npassdb {\r\n driver=sql\r\n args = \/etc\/dovecot\/dovecot-mysql.conf\r\n }\r\n userdb {\r\n driver=sql\r\n args = \/etc\/dovecot\/dovecot-mysql.conf\r\n }\r\n # \u7528\u4e8eSMTP\u9a8c\u8bc1\r\nservice auth {\r\n unix_listener \/var\/spool\/postfix\/private\/auth {\r\n group = postfix\r\n user = postfix\r\n mode = 0660\r\n }\r\n }<\/pre>\n<p>\u5efa\u7acbMYSQL \u914d\u7f6e\u6587\u4ef6\uff0c\u6ce8\u610f\u4fee\u6539\u8fde\u63a5\u7528\u6237\u540d\u5bc6\u7801\uff0c\u548c\u524d\u9762\u7684postfix\u914d\u7f6e\u4e00\u81f4<br \/>\nvi \/etc\/dovecot\/dovecot-mysql.conf<\/p>\n<pre class=\"brush: shell; gutter: true\">driver = mysql\r\nconnect = host=localhost dbname=postfix user=postfix password=postfixpassword\r\ndefault_pass_scheme = MD5-CRYPT\r\npassword_query = SELECT password FROM mailbox WHERE username = &#039;%u&#039;\r\nuser_query = SELECT maildir, 502 AS uid, 502 AS gid FROM mailbox WHERE username = &#039;%u&#039;<\/pre>\n<p>\u5efa\u7acb\u90ae\u7bb1\u6587\u4ef6\u5939,\u5e76\u7ed9\u4e88postfix \u7528\u6237\u6743\u9650<br \/>\nmkdir -pv \/var\/vmail<br \/>\nchown -R postfix.postfix \/var\/vmail<\/p>\n<p>\u542f\u52a8\u670d\u52a1<br \/>\n\/usr\/local\/dovecot\/sbin\/dovecot<\/p>\n<p>6.\u5b89\u88c5\u914d\u7f6e Postfixadmin<br \/>\n\u89e3\u538b postfixadmin.tar.gz \u5e76\u590d\u5236\u5230\u7ad9\u70b9\u76ee\u5f55\u4e0b\u9762<br \/>\n\u4fee\u6539 config.inc.php \u6587\u4ef6\uff0c\u53c2\u8003\u4e0b\u9762\u7684\u914d\u7f6e\u8fdb\u884c\uff0c\u8fd9\u91cc\u7684\u6570\u636e\u5e93\u7528\u6237\u540d\u5bc6\u7801\u5747\u548c\u524d\u9762\u7684\u914d\u7f6e\u4e00\u81f4<\/p>\n<pre class=\"brush: php; gutter: true\">$CONF[&#039;configured&#039;] = true; \r\n$CONF[&#039;default_language&#039;] = &#039;en&#039;;\r\n$CONF[&#039;database_type&#039;] = &#039;mysql&#039;; \r\n$CONF[&#039;database_host&#039;] = &#039;localhost&#039;; \r\n$CONF[&#039;database_user&#039;] = &#039;postfix&#039;; \r\n$CONF[&#039;database_password&#039;] = &#039;postfixpassword&#039;;<\/pre>\n<p>\u767b\u5f55mysql \u63a7\u5236\u53f0\u5efa\u7acbpostfix\u6570\u636e\u5e93\uff0c\u5e76\u5efa\u7acb\u4e00\u4e2apostifx\u7528\u6237\u6307\u5b9a\u5bf9 posfix \u6570\u636e\u5e93\u672c\u5730\u8bbf\u95ee\u6743\u9650<\/p>\n<pre class=\"brush: sql; gutter: true\">&gt; create database postfix;\r\n&gt; grant all privileges on postfix.* to postfix@localhost identified by &#039;postfix\u5bc6\u7801&#039;;\r\n&gt; flush privileges;\r\n&gt; exit<\/pre>\n<p>\u914d\u7f6e\u5b8c\u6210\u540e\u6267\u884c http:\/\/ip\u5730\u5740\/postfixadmin\/setup.php&nbsp; \u8fdb\u884c\u5b89\u88c5<br \/>\n\u5b89\u88c5\u540e\u5c06 \u4fee\u6539\u914d\u7f6e\u5bc6\u7801\uff0c\u628a\u5f97\u5230\u7684 \u52a0\u5bc6 \u5bc6\u7801\u5b57\u4e32\u590d\u5236\u5e76\u518d\u6b21\u4fee\u6539config.inc.php \u6587\u4ef6<br \/>\n$CONF['setup_password'] = \u2018\u5bc6\u7801\u5b57\u4e32\u2019;<br \/>\n\u7136\u540e\u5728\u9875\u9762\u4e0a\u8f93\u5165\u914d\u7f6e\u5bc6\u7801\uff0c\u5e76\u5efa\u7acb\u7ba1\u7406\u5458\u8d26\u53f7,\u5b8c\u6210\u540e \u5220\u9664 setup.php<br \/>\n\u767b\u5f55 http:\/\/ip\u5730\u5740\/postfixadmin&nbsp;&nbsp;&nbsp; \u53ef\u4ee5\u5efa\u7acb\u865a\u62df\u57df\u548c\u90ae\u7bb1<br \/>\n\u5982\u56fe\u6240\u793a<br \/>\n<a href=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/postfixadmin.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-315 alignnone\" title=\"postfixadmin\" src=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/postfixadmin-300x118.jpg\" alt=\"\" width=\"300\" height=\"118\" srcset=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/postfixadmin-300x118.jpg 300w, https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/postfixadmin.jpg 827w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>7. \u914d\u7f6eRoundCube<br \/>\n\u89e3\u538b roundclube.tar.gz \u5e76\u653e\u7f6e\u5728\u7f51\u7ad9\u76ee\u5f55\u4e0b<br \/>\n\u767b\u5f55mysql \u63a7\u5236\u53f0\u5efa\u7acbroundcube\u6570\u636e\u5e93\uff0c\u5e76\u5efa\u7acb\u4e00\u4e2aroundcube\u7528\u6237\u6307\u5b9a\u5bf9 roundcube\u6570\u636e\u5e93\u672c\u5730\u8bbf\u95ee\u6743\u9650<\/p>\n<pre>&amp;gt; create database roundcube;\r\n&amp;gt; grant all privileges on roundcube.* to &lt;a href=&quot;mailto:roundcube@localhost&quot;&gt;roundcube@localhost&lt;\/a&gt; identified by &#039;roundcube\u5bc6\u7801&#039;; \r\n&amp;gt; flush privileges;\r\n&amp;gt; exit<\/pre>\n<p>\u6253\u5f00\u6d4f\u89c8\u5668 <a href=\"http:\/\/yourdomain\/webmail\/installer\/\">http:\/\/yourdomain\/webmail\/installer\/<\/a><br \/>\n\u586b\u5199\u914d\u7f6e\u540e\u5c06 main.inc.php \u914d\u7f6e \u548c db.inc.php \u914d\u7f6e\u590d\u5236\u5e76\u8986\u76d6 config\/ \u4e0b\u5bf9\u5e94\u6587\u4ef6\u5373\u53ef<br \/>\n\u767b\u9646\u540e\u5982\u4e0b\u6240\u793a\uff0c\u5982\u4f55\u7ed9\u57df\u5185\u7528\u6237\u53d1\u90ae\u4ef6\uff0c\u53ca\u914d\u7f6e\u8f6c\u53d1\u8bf7\u67e5\u9605\u5176\u5b83\u53c2\u8003\u8d44\u6599\uff0c\u8fd9\u91cc\u4e0d\u518d\u8bb2\u8ff0<br \/>\n<a href=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/roundcube.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-314 alignnone\" title=\"roundcube\" src=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/roundcube-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/roundcube-300x200.jpg 300w, https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/roundcube-1024x682.jpg 1024w, https:\/\/www.sulabs.net\/wp-content\/uploads\/2012\/09\/roundcube.jpg 1236w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e4b\u524d\u4e00\u76f4\u4f7f\u7528Postfix+Courier+Sasl+Extmail \u90ae\u4ef6\u670d\u52a1\u5668 &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/www.sulabs.net\/?p=311\">\u7ee7\u7eed\u9605\u8bfb &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":314,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[64,63,66,65],"class_list":["post-311","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-dovecot","tag-postfix","tag-postfixadmin","tag-roundcube"],"_links":{"self":[{"href":"https:\/\/www.sulabs.net\/index.php?rest_route=\/wp\/v2\/posts\/311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sulabs.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sulabs.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sulabs.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sulabs.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=311"}],"version-history":[{"count":8,"href":"https:\/\/www.sulabs.net\/index.php?rest_route=\/wp\/v2\/posts\/311\/revisions"}],"predecessor-version":[{"id":977,"href":"https:\/\/www.sulabs.net\/index.php?rest_route=\/wp\/v2\/posts\/311\/revisions\/977"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sulabs.net\/index.php?rest_route=\/wp\/v2\/media\/314"}],"wp:attachment":[{"href":"https:\/\/www.sulabs.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sulabs.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sulabs.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}