当前位置: 首页 > 科技观察

如何在Ubuntu环境中设置邮件服务器第2部分

时间:2023-03-14 21:37:19 科技观察

本教程的第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:X-Original-To:carla@studioDelivered-To:carla@studioReceived:fromstudio(localhost[127.0.0.1])bystudio.router(Postfix)withESMTPid0C261A1F0Ffor;Wed,30Nov201617:18:57-0800(PST)Date:November25,2016From:tester@studio.routerMessage-ID:first-testSubject:mailservertestHicarla,Areyoureadingthis?Letmeknowifyyoudidn'tgetthis..quit+OKLoggingout.Connectionclosedbyforeign花点时间将第一个示例中输入的消息与第二个示例中收到的消息进行比较返回地址和日期很容易伪造,但Postfix不会被愚弄。大多数邮件客户端默认显示最少的标头集,但您需要阅读完整的标头才能看到真正的回溯。您还可以在~/Mail/cur目录中查看您的电子邮件,它们是纯文本,我已经有两个测试电子邮件:$ls.Mail/cur/1480540325.V806I28e0229M351743.studio:2,S1480555224.V806I28e000eM41463。studio:2,S测试IMAP我们的Dovecot同时启用了POP3和IMAP服务,所以让我们使用telnet测试IMAP。$telnetstudioimap2Trying127.0.1.1...Connectedtostudio.Escapecharacteris'^]'.*OK[CAPABILITYIMAP4rev1LITERAL+SASL-IRLOGIN-REFERRALSIDENABLEIDLEAUTH=PLAIN]Dovecotready.A1LOGINcarlapasswordA1OK[CAPABILITYIMAP4rev1LITERAL+SASL-IRLOGIN-REFERRALSIDENABLEIDLESORTSORT=DISPLAYTHREAD=REFERENCESTHREAD=REFSTHREAD=ORDEREDSUBJECTMULTIAPPENDURL-partialCatenateUnSelectChildrennamespaceuidPlusList-extendedi18nlevel=1CondStoreqresyncesyncesyncessearchesearchesearchesearchesearchreswithinContext=searchListStusBinaryMovespecial-use-loggeDina-loggeDina-loggeDina-loggeDina2listiande]loggedina2list]*OK[PERMANENTFLAGS()]只读邮箱。*2EXISTS*0RECENT*OK[UIDVALIDITY1480539462]UIDsvalid*OK[UIDNEXT3]PredictednextUID*OK[HIGHESTMODSEQ1]HighestA3OK[READ-ONLY]Examinecompleted(0.000+0.000secs).A4logout*BYELoggingoutA4OKLogoutcompletedConnectionclosedbyforeignhostThunderbird邮件客户端图1中的屏幕截图显示了我局域Internet上另一台主机上的图形邮件客户端中的邮件图1:Thunderbird邮件此时,您有一个工作的IMAP和POP3邮件服务器,并且您知道如何测试您的服务器。您的用户可以在设置邮件客户端时选择要使用的协议。如果你只想支持一种邮件协议,那么你只需要在你的Dovecot配置中留下你想要的协议的名称。然而,这还远未完成。这是一个非常简单、未加密、敞开大门的安装。它也只适用于与邮件服务器在同一系统上的用户。这不是可扩展的,并且有一些安全风险,例如没有密码保护。我们将在下一篇文章中看到如何创建与系统用户分开的邮件用户以及如何添加加密。