☛ 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