Centos7+Postfix+Dovecot實現郵件收發


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實現郵件收發

標簽:centos7+postfix+dovecot實現郵件收發

原文地址:http://gaowenlong.blog.51cto.com/451336/1884841


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM