Centos7+Postfix+Dovecot實現郵件收發
說到郵件系統,現在有很多,比如微軟的Exchange、Office365、IBM Lotus、主流的第三方提供的郵件系統。當然這些都是收費的,如果對於小環境內使用的話,可以使用linux下部署的Postfix+Dovecot實現郵件的收發等,當然在Linux下 有很多服務可以實現郵件的收發,今天我們主要介紹的是Centos7+Postfix+Dovecot實現郵件收發,具體見下:
首先是安裝好Centos7,安裝好后,我們需要對一些系統的設置進行配置;
1.selinux關閉、sed –I ‘s/enforcing/disabled/g’ /etc/selinux/config 2. firewall-cmd –add-port=’110/tcp’ –permanent firewall-cmd –add-port=’25/tcp’ –permanent
准備好后,首先是查看系統版本
cat /etc/redhat-release
Centos7是自帶postfix服務的,所以我們不用單獨安裝了;
rpm –qa | grep postfix
我們發現系統自帶了postfix服務,所以我們就不用安裝了
postfix 2.10.1-6.el7.x86_64
接下來就是說說postfix的基本配置,當然postfix的配置非常多,我們就不多介紹了,先介紹一下發送郵件的基本配置
我們先通過取反查看默認的postfix的默認配置,查看那些需要修改
grep -v ‘^#‘ /etc/postfix/main.cf | grep -v ‘^$‘
vim /etc/postfix/main.cf
myhostname =pfx.ixmsoft.com #定義主機名 mydomain =ixmsoft.com #定義域名 myorigin =$mydomain #定義組織域
inet_interfaces =all 定義網絡區域 inet_portocols =all 定義協議
我們需要在mydestination的值后面添加 $mydomain ,如果不添加的話,收件人的地址會有問題,如果添加后,用戶發送郵件直接會是 xx@domain.com
取消注釋 #local_recipient_maps =
grep -v ‘^#‘ /etc/postfix/main.cf | grep -v ‘^$‘
修改保存退出后,我們查看反向配置
保存退出后,我們啟動postfix服務及查看端口狀態,
systemctl start postfix system enable postfix netstat –anlpt
接下來我們安裝dovecot服務,該服務主要提供pop3、imap服務
yum install dovecot
安裝完成
接下來我們查看dovecot的默認配置文件
我們看見以下include可以包含的配置文件路勁,在該路勁下的*.conf文件都會生效
我們啟用協議以下協議
protocols = imap pop3 lmtp 啟用端口監聽 listen = *,::
保存退出
grep -v ‘^#‘ /etc/dovecot/dovecot.conf | grep -v ‘^$‘
vim /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = no
auth_mechanisms = plain login !include auth-system.conf.ext
保存退出
grep -v ‘^#‘ /etc/dovecot/conf.d/10-auth.conf | grep -v ‘^$‘
禁用ssl認證,如下:
當然也可以不取消ssl,根據自己的環境定
vim /etc/dovecot/conf.d/10-ssl.conf ssl = no
啟用dovecot的日志,如下:
vim /etc/dovecot/conf.d/10-logging.conf 添加 info_log_path = /var/log/dovecot_info.log debug_log_path = /var/log/dovecot_debug.log
然后啟動服務
systemctl start dovecot systemctl enable dovecot
我們看見110、143都已經監聽了
接下來我們創建一個測試用戶
useradd zs passwd zs
然后輸入新舊密碼
然后我們開始測試
[root@pfx ~]# telnet localhost 110 Trying ::1... Connected to localhost. Escape character is ‘^]‘. +OK Dovecot ready. user zs +OK pass 123456 -ERR [SYS/TEMP] Internal error occurred. Refer to server log for more information. Connection closed by foreign host.
我們查看log
[root@pfx ~]# tail -f /var/log/maillog Dec 21 00:37:58 pfx postfix/postfix-script[9570]: stopping the Postfix mail system Dec 21 00:37:58 pfx postfix/master[9553]: terminating on signal 15 Dec 21 00:38:01 pfx postfix/postfix-script[9654]: starting the Postfix mail system Dec 21 00:38:01 pfx postfix/master[9656]: daemon started -- version 2.10.1, configuration /etc/postfix Dec 21 00:38:08 pfx postfix/smtpd[9661]: warning: hostname bogon does not resolve to address 192.168.5.20: Name or service not known Dec 21 00:38:08 pfx postfix/smtpd[9661]: connect from unknown[192.168.5.20] Dec 21 00:38:20 pfx postfix/smtpd[9661]: lost connection after CONNECT from unknown[192.168.5.20] Dec 21 00:38:20 pfx postfix/smtpd[9661]: disconnect from unknown[192.168.5.20] Dec 21 00:55:46 pfx dovecot: pop3(zs): Error: user zs: Initialization failed: Namespace ‘‘: Mail storage autodetection failed with home=/home/zs Dec 21 00:55:46 pfx dovecot: pop3(zs): Error: Invalid user settings. Refer to server log for more information.
我們切換到剛才的用戶
su – zs 然后為用戶zs,創建inbox目錄 mkdir -p ~/mail/.imap/INBOX
然后再次嘗試就可以了
[root@pfx ~]# telnet localhost 110 Trying ::1... Connected to localhost. Escape character is ‘^]‘. +OK Dovecot ready. user zs +OK pass 123456 +OK Logged in.
測試發送郵件
[root@pfx /]# telnet localhost 25 Trying ::1... Connected to localhost. Escape character is ‘^]‘. 220 mail.ixmsoft.com ESMTP Postfix mail from:zs@ixmsoft.com 250 2.1.0 Ok rcpt to:ls@ixmsoft.com 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> this is test mail . 250 2.0.0 Ok: queued as A702D400FC14 quit 221 2.0.0 Bye Connection closed by foreign host.
我們查看郵件
[root@pfx /]# telnet localhost 110 Trying ::1... Connected to localhost. Escape character is ‘^]‘. +OK Dovecot ready. user ls +OK pass 123456 +OK Logged in. list +OK 1 messages: 1 409 .
我們每次都需要創建目錄,比較麻煩,我們可以不可以用腳本呢
設置郵件存放目錄:
vim/etc/dovecot/conf.d/10-mail.conf 取消以下注釋 mail_location = mbox:~/mail:INBOX=/var/mail/%u #指定郵件的位置
重啟dovecot服務 systemctl restart dovecot 修改創建用戶模板文件,使用戶創建時自動生成mail存放目錄 vim /etc/skel/.bash_profile 添加一下配置文件, if[ ! -d ~/mail/.imap/INBOX ] ; then mkdir -p ~/mail/.imap/INBOX fi 注:如果是復制的,最好在保存推出前,執行以下編碼格式的執行 :set format=unix 或者可以下載附件,替換當前的配置文件即可
保存退出后,執行一下,為其快速生效。
source .bash_profile
接下來我們需要創建測試用戶,創建用戶后,使用新用戶登錄后,會自動創建相關目錄,然后就直接可以使用郵箱了;我們也可以使用outlook或者其他方式進行郵件測試,再次就不做測試;
如果想希望對外及對內郵件有來往的話,需要將服務器的110、25發布到外網,然后再外網的域名商配置MX記錄解析及A記錄解析,這樣郵件才能回來。
我們最后使用foxmail進行內網測試了;
我們配置兩個賬戶,zs、ls用戶進行郵件收發測試:
我們再添加一個ls的賬戶
使用zs給ls發郵件
zs收到郵件了
ls也收到郵件了
本文出自 “高文龍” 博客,謝絕轉載!
標簽:centos7+postfix+dovecot實現郵件收發
原文地址:http://gaowenlong.blog.51cto.com/451336/1884841