☛ IMAP 与 POP3 收信

postfix 伺服器主要提供 SMTP 协定服务,而使用者收信时则是采用其他如 POP3、IMAP 等协定连上伺服器读取信件,因此要额外进行这类伺服器的设定才能让使用者连上伺服器收信。

☛ 必要的套件与设定

CentOS 的 IMAP 与 POP3 协定是由 dovecot 这个服务器所负责的,使用 rpm 指令可确认是否安装该套件:

[root@localhost ~ ]# rpm -qa|grep dovecot
dovecot-2.2.10-4.el7_0.1.x86_64

若未显示该套件资讯时,可使用 yum 指令安装:

[root@localhost ~ ]# yum -y install dovecot

☛ Dovecot 相关设定

Dovecot 伺服器的设定档为 /etc/dovecot/dovecot.conf,其预设值为启动 POP3 ( 埠号 110 ) 与 IMAP ( 埠号 143 ),除了这两种收信协定外,亦包括了 POP3s ( 埠号 995 ) 与 IMAPs ( 埠号 993 ) 这两个对应且加密的协定服务。若想关闭任何协定,可修改 dovecot.conf 设定档中的 protocols 设定值,如下:

# Protocols we want to be serving.
#protocols = imap pop3 lmtp
protocols = imap pop3

接着在 /etc/dovecot/conf.d/10-mail.conf 档案中,修改 mail_location 的设定值,如下:

# See doc/wiki/Variables.txt for full list. Some examples:
#
#   mail_location = maildir:~/Maildir
#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
# <doc/wiki/MailLocation.txt>
#
#mail_location = 
mail_location = mbox:~/mail:INBOX=/var/mail/%u

当使用者使用 Outlook 等收信软件收取邮件时,则需再修改 /etc/dovecot/conf.d/10-auth.conf 及 /etc/dovecot/conf.d/10-ssl.conf 这两个设定档的设定值。10-auth.conf 的设定修改如下:

##
## Authentication processes
##

# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
# See also ssl=required setting.
#disable_plaintext_auth = yes
disable_plaintext_auth = no

接着修改 10-ssl.conf 设定档的设定值,修改如下:

##
## SSL settings
##

# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
# plain imap and pop3 are still allowed for local connections
#ssl = required
ssl = no

储存上述设定档后,再启动 Dovecot 伺服器及开机自动启动伺服器:

[root@localhost ~ ]# systemctl start dovecot
[root@localhost ~ ]# systemctl enable dovecot

最后,为了避免权限问题,请将 /var/mail/ 下的所有档案权限设为 600,指令如下:

[root@localhost ~ ]# chmod 600 /var/mail/*

☛ 测试

由于 POP3 与 IMAP 在登入收信时,是以明码方式传送帐号与密码,安全性较低。若重视安全性考虑时,则应采用加密协定,如 POP3s 或 IMAPs。

POP3 协定测试如下:

以 telnet 指令连线至本机埠号 110,并输入 user 指令指定帐号 jack 与 pass 指令,测试结束时可按下 Ctrl+] 再输入 quit,结束 telnet 连线:

[root@localhost ~ ]# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is ']'.
+OK Dovecot ready.
user jack
+OK
pass abc123
+OK logged in.
^]quit

IMAP 协定测试如下:

以 telnet 指令连线至本机埠号 143,并输入 a login jack abc123 指定帐号与密码,测试结束时可按下 Ctrl+] 再输入 quit,结束 telnet 连线:

[root@localhost ~ ]# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is ']'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
a login jack abc123
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THRED=REFS MULTIAPPEDN UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS]
logged in