發佈日期:
如何在Amazon EC2中的Postfix伺服器‧安裝Dovecot的IMAP協定
01. Postfix安裝後,也試過在伺服器上收發電郵,今天會安裝Dovecot的IMAP協定,以便用戶可在其他電郵客戶端上收發電郵。02. 安裝Dovecot程式及IMAP協定。
sudo apt install dovecot-core dovecot-imapd

03. 打開dovecot.conf檔案。
sudo nano /etc/dovecot/dovecot.conf

在檔案最下面加入以下內容: protocols = imap

04. 打開10-mail.conf檔案。
sudo nano /etc/dovecot/conf.d/10-mail.conf

將: mail_location = mbox:~/mail:INBOX=/var/mail/%u 更改為(這是Postfix用戶郵箱放置位置。當初設定郵箱時我用了這名稱。): mail_location = maildir:~/Maildir

05. 將dovecot用戶加入mail群組。
sudo gpasswd -a dovecot mail

06. 打開10-auth.conf檔案。
sudo nano /etc/dovecot/conf.d/10-auth.conf

將: # disable_plaintext_auth = yes 更改為: disable_plaintext_auth = yes

將: # auth_username_format = %Lu 更改為(我選擇了以細階英文作為登入名稱,): auth_username_format = %Lu

將: auth_mechanisms = plain 更改為(除簡單認證(PLAIN authentication),會再加入登入認證(LOGIN authentication)): auth_mechanisms = plain login

07. 打開10-master.conf檔案。
sudo nano /etc/dovecot/conf.d/10-master.conf

將:
# Postfix smtp-auth
#unix_listener /var/spool/postfix/private/auth {
#  mode = 0666
#}
更改為:
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}

08. 打開15-mailboxes.conf檔案。
sudo nano /etc/dovecot/conf.d/15-mailboxes.conf

將:
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Trash {
special_use = \Trash
}
更改為:
mailbox Drafts {
special_use = \Drafts
auto = create
}
mailbox Junk {
special_use = \Junk
auto = create
}
mailbox Trash {
special_use = \\Trash
auto = create
}

將:
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
更改為:
mailbox Sent {
special_use = \Sent
auto = create
}
# mailbox "Sent Messages" {
# special_use = \Sent
# }

09. 打開10-ssl.conf檔案。
sudo nano /etc/dovecot/conf.d/10-ssl.conf

確認: ssl = yes
將: ssl_cert = </etc/dovecot/private/dovecot.pem ssl_key = </etc/dovecot/private/dovecot.key 更改為: ssl_cert = </etc/letsencrypt/live/nephkmail.ddns.net/cert.pem ssl_key = </etc/letsencrypt/live/nephkmail.ddns.net/privkey.pem
將: # ssl_ca = 更改為: ssl_ca = </etc/letsencrypt/live/nephkmail.ddns.net/fullchain.pem


10. 重新啟動Dovecot及Postfix服務。
sudo systemctl restart dovecot sudo systemctl restart postfix

11. 確認EC2防火牆已打開相應的埠位。
Port 25 (default SMTP) Port 143 (default IMAP) Port 993 (SSL/TLS IMAP) Port 995 (SSL/TLS POP3)
13. 你會發現一個奇怪的情況。自己網域內收發電郵是沒有問題;由外面網域電郵發到自己網域也是沒有問題;唯獨由自己網域電郵發到外面網域就會出現錯誤。

14. 此問題就是因為電郵轉發(mail relay)設定問題。打開Postfix設定檔案main.cf。
sudo nano /etc/postfix/main.cf

加入以下內容: smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes

15. 同時,亦可為Postfix伺服器加入加密證書。
將: smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key 更改為: smtpd_tls_cert_file=/etc/letsencrypt/live/nephkmail.ddns.net/cert.pem smtpd_tls_key_file=/etc/letsencrypt/live/nephkmail.ddns.net/privkey.pem

16. 重新啟動Postfix服務。
sudo systemctl restart postfix

17. 郵件可以經客戶端寄出。


發佈留言