如何在 Ubuntu 环境下搭建邮件服务器(二)

本教程的第 2 部分将介绍如何使用 Dovecot 将邮件从 Postfix 服务器移动到用户的收件箱。

第一部分中,我们安装并测试了 Postfix SMTP 服务器。Postfix 或任何 SMTP 服务器都不是一个完整的邮件服务器,因为它所做的只是在 SMTP 服务器之间移动邮件。我们需要 Dovecot 将邮件从 Postfix 服务器移动到用户的收件箱中。

Dovecot 支持两种标准邮件协议:IMAP(Internet 邮件访问协议)和 POP3(邮局协议)。 IMAP 服务器会在服务器上保留所有邮件。您的用户可以选择将邮件下载到计算机或仅在服务器上访问它们。 IMAP 对于有多台机器的用户是方便的。但对你而言需要更多的工作,因为你必须确保你的服务器始终可用,而且 IMAP 服务器需要大量的存储和内存。

POP3 是较旧的协议。POP3 服务器可以比 IMAP 服务器服务更多的用户,因为邮件会下载到用户的计算机。大多数邮件客户端可以选择在服务器上保留一定天数的邮件,因此 POP3 的行为有点像 IMAP。但它又不是 IMAP,当你像 IMAP 那样(在多台计算机上使用它时)那么常常会下载多次或意外删除。

安装 Dovecot

启动你的 Ubuntu 系统并安装 Dovecot:


  1. $ sudo apt-get install dovecot-imapd dovecot-pop3d

它会安装可用的配置,并在完成后自动启动,你可以用 ps ax | grep dovecot 确认:


  1. $ ps ax | grep dovecot
  2. 15988 ? Ss 0:00 /usr/sbin/dovecot
  3. 15990 ? S 0:00 dovecot/anvil
  4. 15991 ? S 0:00 dovecot/log

打开你的 Postfix 配置文件 /etc/postfix/main.cf,确保配置了maildir 而不是 mbox 的邮件存储方式,mbox 是给每个用户一个单一大文件,而 maildir 是每条消息都存储为一个文件。大量的小文件比一个庞大的文件更稳定且易于管理。添加如下两行,第二行告诉 Postfix 你需要 maildir 格式,并且在每个用户的家目录下创建一个 .Mail 目录。你可以取任何名字,不一定要是 .Mail


  1. mail_spool_directory = /var/mail
  2. home_mailbox = .Mail/

现在调整你的 Dovecot 配置。首先把原始的 dovecot.conf 文件重命名放到一边,因为它会调用存放在 conf.d 中的文件,在你刚刚开始学习时把配置放一起更简单些:


  1. $ sudo mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot-oldconf

现在创建一个新的 /etc/dovecot/dovecot.conf


  1. disable_plaintext_auth = no
  2. mail_location = maildir:~/.Mail
  3. namespace inbox {
  4. inbox = yes
  5. mailbox Drafts {
  6. special_use = \Drafts
  7. }
  8. mailbox Sent {
  9. special_use = \Sent
  10. }
  11. mailbox Trash {
  12. special_use = \Trash
  13. }
  14. }
  15. passdb {
  16. driver = pam
  17. }
  18. protocols = " imap pop3"
  19. ssl = no
  20. userdb {
  21. driver = passwd
  22. }

注意 mail_location = maildir 必须和 main.cf 中的 home_mailbox 参数匹配。保存你的更改并重新加载 Postfix 和 Dovecot 配置:


  1. $ sudo postfix reload
  2. $ sudo dovecot reload

快速导出配置

使用下面的命令来快速查看你的 Postfix 和 Dovecot 配置:


  1. $ postconf -n
  2. $ doveconf -n

测试 Dovecot

现在再次启动 telnet,并且给自己发送一条测试消息。粗体显示的是你输入的命令。studio 是我服务器的主机名,因此你必须用自己的:


  1. $ telnet studio 25
  2. Trying 127.0.1.1...
  3. Connected to studio.
  4. Escape character is '^]'.
  5. 220 studio.router ESMTP Postfix (Ubuntu)
  6. EHLO studio
  7. 250-studio.router
  8. 250-PIPELINING
  9. 250-SIZE 10240000
  10. 250-VRFY
  11. 250-ETRN
  12. 250-STARTTLS
  13. 250-ENHANCEDSTATUSCODES
  14. 250-8BITMIME
  15. 250-DSN
  16. 250 SMTPUTF8
  17. mail from: tester@test.net
  18. 250 2.1.0 Ok
  19. rcpt to: carla@studio
  20. 250 2.1.5 Ok
  21. data
  22. 354 End data with .Date: November 25, 2016
  23. From: tester
  24. Message-ID: first-test
  25. Subject: mail server test
  26. Hi carla,
  27. Are you reading this? Let me know if you didn't get this.
  28. .
  29. 250 2.0.0 Ok: queued as 0C261A1F0F
  30. quit
  31. 221 2.0.0 Bye
  32. Connection closed by foreign host.

现在请求 Dovecot 来取回你的新消息,使用你的 Linux 用户名和密码登录:


  1. $ telnet studio 110
  2. Trying 127.0.0.1...
  3. Connected to studio.
  4. Escape character is '^]'.
  5. +OK Dovecot ready.
  6. user carla
  7. +OK
  8. pass password
  9. +OK Logged in.
  10. stat
  11. +OK 2 809
  12. list
  13. +OK 2 messages:
  14. 1 383
  15. 2 426
  16. .
  17. retr 2
  18. +OK 426 octets
  19. Return-Path: <tester@test.net>
  20. X-Original-To: carla@studio
  21. Delivered-To: carla@studio
  22. Received: from studio (localhost [127.0.0.1])
  23. by studio.router (Postfix) with ESMTP id 0C261A1F0F
  24. for <carla@studio>; Wed, 30 Nov 2016 17:18:57 -0800 (PST)
  25. Date: November 25, 2016
  26. From: tester@studio.router
  27. Message-ID: first-test
  28. Subject: mail server test
  29. Hi carla,
  30. Are you reading this? Let me know if you didn't get this.
  31. .
  32. quit
  33. +OK Logging out.
  34. Connection closed by foreign host.

花一点时间比较第一个例子中输入的消息和第二个例子中接收的消息。 返回地址和日期是很容易伪造的,但 Postfix 不会被愚弄。大多数邮件客户端默认显示一个最小的标头集,但是你需要读取完整的标头才能查看真实的回溯。

你也可以在你的 ~/Mail/cur 目录中查看你的邮件,它们是普通文本,我已经有两封测试邮件:


  1. $ ls .Mail/cur/
  2. 1480540325.V806I28e0229M351743.studio:2,S
  3. 1480555224.V806I28e000eM41463.studio:2,S

测试 IMAP

我们 Dovecot 同时启用了 POP3 和 IMAP 服务,因此让我们使用 telnet 测试 IMAP。


  1. $ telnet studio imap2
  2. Trying 127.0.1.1...
  3. Connected to studio.
  4. Escape character is '^]'.
  5. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS
  6. ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
  7. A1 LOGIN carla password
  8. A1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS
  9. ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS
  10. THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT
  11. CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE
  12. QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS
  13. BINARY MOVE SPECIAL-USE] Logged in
  14. A2 LIST "" "*"
  15. * LIST (\HasNoChildren) "." INBOX
  16. A2 OK List completed (0.000 + 0.000 secs).
  17. A3 EXAMINE INBOX
  18. * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
  19. * OK [PERMANENTFLAGS ()] Read-only mailbox.
  20. * 2 EXISTS
  21. * 0 RECENT
  22. * OK [UIDVALIDITY 1480539462] UIDs valid
  23. * OK [UIDNEXT 3] Predicted next UID
  24. * OK [HIGHESTMODSEQ 1] Highest
  25. A3 OK [READ-ONLY] Examine completed (0.000 + 0.000 secs).
  26. A4 logout
  27. * BYE Logging out
  28. A4 OK Logout completed.
  29. Connection closed by foreign host

Thunderbird 邮件客户端

图 1 中的屏幕截图显示了我局域网上另一台主机上的图形邮件客户端中的邮件。

图 1: Thunderbird mail

此时,你已有一个可以工作的 IMAP 和 POP3 邮件服务器,并且你也知道该如何测试你的服务器。你的用户可以在他们设置邮件客户端时选择要使用的协议。如果您只想支持一个邮件协议,那么只需要在您的 Dovecot 配置中留下你要的协议名字。

原文发布时间为:2016-12-30

本文来自合作伙伴“Linux中国”

时间: 2024-11-02 03:18:55

如何在 Ubuntu 环境下搭建邮件服务器(二)的相关文章

如何在Ubuntu环境下搭建邮件服务器(一)

在这个系列的文章中,我们将通过使用 Postfix.Dovecot 和 openssl 这三款工具来为你展示如何在 ubuntu 系统上搭建一个既可靠又易于配置的邮件服务器. 在这个容器和微服务技术日新月异的时代,值得庆幸的是有些事情并没有改变,例如搭建一个 Linux 下的邮件服务器,仍然需要许多步骤才能间隔各种服务器耦合在一起,而当你将这些配置好,放在一起,却又非常可靠稳定,不会像微服务那样一睁眼有了,一闭眼又没了. 在这个系列教程中我们将通过使用 Postfix.Dovecot 和 ope

如何在 Ubuntu 环境下搭建邮件服务器(三)

在本系列的最后,我们将详细介绍如何在 Dovecot 和 Postfix 中设置虚拟用户和邮箱. 欢迎回来,热心的 Linux 系统管理员们! 在本系列的第一部分和第二部分中,我们学习了如何将 Postfix 和 Dovecot 组合在一起,搭建一个不错的 IMAP 和 POP3 邮件服务器. 现在我们将学习设置虚拟用户,以便我们可以管理所有 Dovecot 中的用户. 抱歉,还不能配置 SSL 我知道我答应过教你们如何设置一个受 SSL 保护的服务器. 不幸的是,我低估了这个话题的范围. 所以

如何在Ubuntu环境下搭建邮件服务器(二)

本教程的第 2 部分将介绍如何使用 Dovecot 将邮件从 Postfix 服务器移动到用户的收件箱. 在第一部分中,我们安装并测试了 Postfix SMTP 服务器.Postfix 或任何 SMTP 服务器都不是一个完整的邮件服务器,因为它所做的只是在 SMTP 服务器之间移动邮件.我们需要 Dovecot 将邮件从 Postfix 服务器移动到用户的收件箱中. Dovecot 支持两种标准邮件协议:IMAP(Internet 邮件访问协议)和 POP3(邮局协议). IMAP 服务器会在

CentOS7下搭建邮件服务器(dovecot + postfix + SSL)

花了基本上两天的时间去配置CentOS7下的邮件服务器.其中艰辛太多了,一定得总结下. 本文的目的在于通过一系列配置,在CentOS 7下搭建dovecot + postfix + SSL 服务器,并且能够通过邮件客户端(本文中是Airmail)进行收发邮件. ¶前提条件 你得有个主机或者VPS 你有一个主域名比如 fancycoding.com 还有一个二级域名比如 mail.fancycoding.com 二级域名的 SSL 证书. ¶配置你的DNS记录 确认主域名有A记录指向服务器IP 添

在LINUX环境下搭建YUM服务器

软件包管理器 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE.CentOS中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装. 软件包来源 可供Yum下载的软件包包括Fedora本身的软件包以及源自rpmfusion和rpm.livna.org的Fedora Extras,全部是由Linux社区维护的

Ubuntu Linux下搭建FTP服务器图解

1 首先用命令检查是否安装了vsftpd vsftpd -version 如果未安装用一下命令安装 apt-get install vsftpd 安装完成后,再次输入vsftpd -version命令查看是否安装成功 2 新建一个文件夹用于FTP的工作目录 mkdir /home/ftp 3 新建FTP用户并设置密码以及工作目录 ftpname为你为该ftp创建的用户名 sudo useradd -d /home/ftp -s /bin/bash ftpname 为新建的用户设置密码 passw

如何在mac下搭建云服务器?

问题描述 如何在mac下搭建云服务器? 最近学习了android,想自己搭建个云服务器,在mac用什么程序搭建比较好?mac怎么连接云服务器也不是很清楚.或者是推荐看看什么书? 解决方案 http://www.cnblogs.com/wx1993/p/5022670.html

如何在IIS环境下配置Rewrite规则 图文_win服务器

URL 静态化可以提高搜索引擎抓取,开启本功能需要对 Web 服务器增加相应的 Rewrite 规则,且会轻微增加服务器负担.本教程讲解如何在 IIS 环境下配置各个产品的 Rewrite 规则. 一.首先下载 Rewrite.zip 的包,解压到任意盘上的任意目录. 各个产品的 Rewrite 规则包不同,请选择对应的产品下载对应的 Rewrite 规则. Discuz!6.0.0/6.1.0 的 Rewrite 规则下载地址:Rewrite.zip UCenter Home1.0.0 的 R

如何在Linux环境下架设和配置Samba服务器

Windows可以通过网上邻居访问局域网主机,而在Linux下则可以通过Samba客户端访问局域网内的Windows主机,也可以通过Samba服务器给Windows主机提供文件.打印机等服务.下面,小编就给大家介绍一下如何在Linux环境下架设和配置Samba服务器,为了方便讲述,这里假设Windows主机的计算机名为http://www.aliyun.com/zixun/aggregation/29867.html">Peter,设Linux主机的名称为RedHat. 一.安装Samba