啟動 dovecot 的 smtp 認證機制

url

 

在「在CentOS 7下建立基本的postfix及dovecot服務」這篇文章有提到如何在 CentOS 7 主機上建立基本的 mail 系統,並搭配 RoundCubemail 去實作一套功能強大的 Webmail系統,但如果客戶仍習慣使用像是 Outlook 的收發信軟體,或者是業務人員會每天帶著一台筆電在外頭發信,此時該怎麼設定呢?先前已經提到架設 IMAP Server 的方法,若配合此篇教學,就可以不需要使用者去設定收信軟體,就可以將 email 留在 server 上了,這年頭的硬碟成本雖然愈來愈低,但是毀損率還是挺高的,採用 IMAP 其實蠻方便的,到時要換一台主機的話,也不需要去管電腦的信了,只要設定好新電腦的帳號就可以把 Mail 全都載入回來,不過得注意伺服器本身就要注意備份的問題,不然整組壞掉還真的救不回來XD。

首先我們先在伺服器安裝 Cyrus 相關的套件,指令如下:

# yum install cyrus-sasl cyrus-sasl-md5

第二步,修改 /etc/dovecot/conf.d/10-master.conf,找到「unix_listener auth-userdb」這行(在service auth {後面),然後把他用「#」mark起來,要注意後面有個「{」,記得連同下一段的「{」也要mark起來,然後加上以下的內容,整段內容如下:

service auth {
######
######
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postdrop
  } -> 別忘了這個
}

第三步,修改 /etc/dovecot/conf.d/10-auth.conf,在 auth_mechanisms 最後加入 login,整段內容如下:

auth_mechanisms = plain login

第四步,修改 /etc/postfix/main.cf,在最後面加入以下的內容:

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous

第四步,設定啟動 saslauthd 及重新啟動相關的服務。

# systemctl enable saslauthd.service
# systemctl restart salsauthd.service
# systemctl restart dovecot.service
# systemctl restart postfix.service

接下來做一個簡單測試,看看認證服務是否啟動。

# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 locslhost ESMTP Postfix
ehlo localhost
250-localhost
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

如果有出現「AUTH=PLAIN LOGIN」,大致上應該沒有問題,此時若是使用 outlook,記得在「外寄郵件伺服器」的部份設定「我的外寄伺服器需要驗證」另勾選「使用與內送郵件伺服器相同的設定」即可。

另外如果還想把寄信備份的內容同步到 IMAP Server 上,Outlook(2007) 的使用者還需自行設定,方法如下:

  1. 打開 Outlook 主畫面,在畫面左方選擇你要設定的帳號,例如:test@test.com
  2. 接下下按滑鼠右鍵,選擇「更新資料夾選單」此時會同步IMAP Server上的資料夾,其中會有「Sent」
  3. 勾選「工具」->「帳戶設定」
  4. 選擇您要設定的郵件帳號,按下畫面中的「變更」(要仔細找一下)
  5. 在畫面右下方選擇「其他設定」
  6. 選擇「資料夾」
  7. 將原本的「將已傳送郵件儲存在 Outlook [寄件備份] 資料夾中」改為「選擇現有資料夾或建立新資料夾,以儲存此帳戶的寄件備份」
  8. 選擇剛剛從更新IMAP資料夾中出現的「Sent」資料夾
  9. 按下「確定」就完成設定了

同樣的功能在 ThunderBird 就不需要設定,預設都會取用遠端的 IMAP 資料夾~完成設定後,以後不管是寄的還是收的信,都只會儲存在同一個位置,就不需要在每次換電腦時一直備份mail了,另外你也可以將帳號資訊分別設定在桌面、筆電及行動裝置上,彼此同步又不重覆,是非常方便的功能~

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *