Dovecot

Dovecot是CentOS系统中著名的POP3/IMAP服务器实现。POP3/IMAP是从邮件服务器中读取邮件时使用的协议,POP3将邮件全部从服务器中拖取下来;IMAP则每次从服务器获取邮件名等关键信息,要读某封邮件时,才从服务器下载。

基础概念

用户数据库(User Databases)

用户数据库提供以下信息:uid、gid、home(家目录。可选。但即便是virtual users也建议配置)、mail(邮件路径,参考mail_location配置)。用户数据库可以与密码数据库是同一个文件。

用户数据库的实现支持:

用户数据库实现说明
Passwd系统用户。
Passwd-file类似/etc/passwd的文件
NSSName Service Switch
LDAPLightweight Directory Access Protocol
SQLSQL数据库(Mysql、PostgreSQL、SALite)。
Static
VPopMail用来处理虚拟域名的外部软件

配置文件

Dovecot的配置文件:/etc/dovecot/dovecot.conf

/etc/dovecot/conf.d/10-mail.conf中定义了邮箱位置。以下是常见的变量说明:

%u - username
%n - user part in user@domain, same as %u if there's no domain
%d - domain part in user@domain, empty if there's no domain
%h - home directory
特殊变量说明
%u用户名
%nuser@domain的用户名部分。
%duser@domain的域名部分。
%h用户的家目录。

命令行测试Dovecot

尝试连接Dovecot:

$ telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

输出OK表明连接成功。尝试登录(用用户名USERNAME和密码PWD登录):

a login USERNAME PWD
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in

登录失败的输出:

a NO [AUTHENTICATIONFAILED] Authentication failed.

尝试安全连接:

$ openssl s_client -connect 127.0.0.1:993
...
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

检查INBOX:

b select inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk \*)] Flags permitted.
* 1 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1375066772] UIDs valid
* OK [UIDNEXT 2] Predicted next UID
* OK [HIGHESTMODSEQ 4] Highest
b OK [READ-WRITE] Select completed.

登出:

e logout
* BYE Logging out
e OK Logout completed.
Connection closed by foreign host.

分享

0