本教程的第2部分将向您展示如何使用Dovecot将邮件从Postfix服务器移动到用户的收件箱。在***部分,我们安装并测试了PostfixSMTP服务器。Postfix或任何SMTP服务器都不是完整的邮件服务器,因为它所做的只是在SMTP服务器之间移动邮件。我们需要Dovecot将邮件从Postfix服务器转移到用户的收件箱中。Dovecot支持两种标准邮件协议:IMAP(Internet消息访问协议)和POP3(邮局协议)。IMAP服务器将所有邮件保存在服务器上。您的用户可以选择将消息下载到他们的计算机或仅在服务器上访问它们。IMAP对于拥有多台机器的用户来说很方便。但是您需要做更多的工作,因为您必须确保您的服务器始终可用,而IMAP服务器需要大量存储空间和内存。POP3是一种较旧的协议。POP3服务器可以为比IMAP服务器多得多的用户提供服务,因为邮件被下载到用户的计算机上。大多数邮件客户端都可以选择将邮件在服务器上保留一定天数,因此POP3的行为有点像IMAP。但它不是IMAP,当您像IMAP一样使用它时(在多台计算机上使用它时),它经常会被下载多次或被意外删除。安装Dovecot启动你的Ubuntu系统并安装Dovecot:$sudoapt-getinstalldovecot-imapddovecot-pop3d它将安装可用的配置并在完成后自动启动,你可以用psax|确认grepdovecot:$psax|grepdovecot15988?Ss0:00/usr/sbin/dovecot15990?S0:00dovecot/anvil15991?S0:00dovecot/log打开你的Postfix配置文件/etc/postfix/main.cf,确保配置maildir而不是mbox邮件存储,mbox是为每个用户的一个单独的大文件,以及一个maildir,其中每条消息都作为一个文件存储。许多小文件比一个大文件更稳定、更易于管理。添加以下两行,第二行告诉Postfix您想要maildir格式并在每个用户的主目录中创建一个.Mail目录。您可以任意命名,不必是.Mail:mail_spool_directory=/var/mailhome_mailbox=.Mail/现在调整您的Dovecot配置。首先把原来的dovecot.conf文件改名放在一边,因为它调用的是保存在conf.d中的文件,刚开始的时候把配置放在一起比较容易:$sudomv/etc/dovecot/dovecot。conf/etc/dovecot/dovecot-oldconf现在创建一个新的/etc/dovecot/dovecot.conf:disable_plaintext_auth=nomail_location=maildir:~/.Mailnamespaceinbox{inbox=yesmailboxDrafts{special_use=\Drafts}mailboxSent{special_use=\Sent}mailboxTrash{special_use=\Trash}}passdb{driver=pam}protocols="imappop3"ssl=nouserdb{driver=passwd}注意mail_location=maildir必须匹配main.cf中的home_mailbox参数。保存您的更改并重新加载Postfix和Dovecot配置:$sudopostfixreload$sudodovecotreload快速导出配置使用以下命令快速查看您的Postfix和Dovecot配置:$postconf-n$doveconf-ntestDovecot现在再次启动telnet并提供自己发一条测试消息。您键入的命令以粗体显示。studio是我服务器的主机名,所以你必须使用自己的主机名:$telnetstudio25Trying127.0.1.1...Connectedtostudio.Escapecharacteris'^]'.220studio.routerESMTPPostfix(Ubuntu)EHLOstudio250-studio.router250-PIPELINING250-SIZE10240000250-VRFYETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250-DSN250SMTPUTF8mailfrom:tester@test.net2502.1.0Okrcptto:carla@studio2502.1.5Okdata354Enddatawith.Date:November25,2016From:testerMessage-ID:first-testSubject:mailservertestHicarla,Areyoureadingthis?Letmeknowifyoudidn'tgetthis..2502.0.0Ok:queuedas0C261A1F0Fquit2212.0.0ByeConnectionclosedbyforeignhost。现在要求Dovecot检索您的新消息,使用您的Linux用户名和密码登录:$telnetstudio110Trying127.0.0.1...Connectedtostudio.Escapecharacteris'^]'.+OKDovecotready.usercarla+OKpasspassword+OKLoggedin.stat+OK2809list+OK2messages:13832426.retr2+OK426octetsReturn-Path:
