Postfix+Dovecot搭建MailServer配置說明
1. 概述
MailServer是網絡郵件傳遞及接受伺服器,隻需注冊個人郵箱,通過郵件用戶端與他人發送郵件。
MailServer通過SMTP協定發送郵件,提供這種伺服器的軟體有很多,在這裡采用Postfix,Postfix擔任兩種角色一種是“郵件投遞代理”(MTA),一種是“本地信使”。作為MTA時,Postfix使用SMTP協定通過網絡收發E-mail資訊;作為“本地信使”時,則是直接将郵件分發到郵箱。
使用者想要從郵箱中提取他們的郵件,必須使用郵件用戶端連接配接到POP/IMAPserver,由伺服器代為通路郵箱。提供POP/IMAPserver的軟體很多a,這裡采用Dovecot軟體。
MailServer結構示意圖如下:
2. 安裝Postfix和Dovecot
本文檔下述操作是基于Linux作業系統版本: Fedora12(核心版本Red Hat 4.4.2-7)
采用線上安裝,輸入指令如下
#yum -y install dovecot
#yum -y install postfix
完成安裝後,鍵入如下指令,看是否安裝完全:
#rpm -qa | grep ‘dovecot’
dovecot-1.2.11-3.fc12.i686
#rpm –qa | grep ‘postfix’
postfix-2.6.5-2.fc12.i686
(注:對于不同版本系統,可能需要的包有所差別,但大多數包是相同的,這裡僅供參考)
3. 配置
3.1 準備工作
安裝Postfix後會生成一些預設的目錄檔案:
/etc/postfix/
配置檔案與查詢表
/usr/libexec/postfix/
Postfix的各項服務程式
/var/spool/postfix/
隊列檔案
其中,主要配置檔案是 /etc/postfix/main.cf
檢視main.cf中參數的指令如下:
#postconf -n
安裝Dovecot後生成配置檔案
/etc/dovecot.conf
3.2 基本配置
3.2.1 Postfix配置
配置方式有兩種,一種是直接編輯/etc/postfix/main.cf
#vi /etc/postfix/main.cf
配置檔案中的參數有些是被#注釋的,隻需去掉注釋符号,有些這是要修改參數的值
第二種方式是使用指令修改
#postconf -e ‘parameter = value’ //parameter是參數名,value是參數的值
修改main.cf檔案
# vi /etc/postf/main.cf
home_mailbox = Maildir/ #使用maildir 格式郵箱
myhostname = mail.abc.com #設定postfix服務的郵件主機名
mydomain =abc.com #設定域名
myorigin = $mydomain #設定由本機寄出的郵件所使用的域名
mydestination = $myhostname, $mydomain, localhost.$mydomain,localhost, 10.1.0.0/254 #設定可接受郵件的域名和主機名,還有ip段,其中 10.1.0.0/254表示10.1.0.0-10.1.0.254的IP位址都可以用
inet_interfaces = all #設定postfix服務監聽的網絡接口
inet_interfaces = localhost 删除
relay_domains = $mydestination #設定可以轉發那些域的郵件
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc_maps #接受轉發郵件位址
sender_bcc_maps = hash:/etc/postfix/sender_bcc_maps #發送轉發郵件位址
myhostname = mail.abc.com #設定postfix服務的郵件主機名、域名
在/etc/postfix/建立兩個檔案recipient_bcc_maps,sender_bcc_maps兩個檔案。兩個郵件位址之間用tab鍵隔開。
#vi /etc/postfix/sender_bcc_maps
[email protected] [email protected]
該檔案表示發向[email protected],轉發給[email protected]。
#postmap /etc/postfix/sender_bcc_maps
#postmap /etc/postfix/recipient_bcc_maps
儲存之後,如果postfix是啟動的,就要使用如下指令重新加載main.cf
#postfix reload
3.2.2 Dovecot配置
打開dovecot.conf配置檔案
#vi /etc/dovecot.conf
protocols = pop3 #使用POP3協定
ssl = no #不啟動ssl認證
mail_location = maildir:~/Maildir #為系統使用者建立郵箱目錄
mechanisms = plain login # 認證方式
socket listen{
client {
path = /var/run/dovecot/auth-client #啟動路徑
mode = 0660
user = postfix
group = postfix
}
}
4. 啟動Postfix 和 Dovecot
首先檢查系統中是否安裝了sendmail,一般情況都有sendmail,這裡要先将sendmail服務關閉,或者是解除安裝sendmail
#service sendmail stop #關閉sendmail服務
#chkconfig sendmail off #關閉開機自動運作sendmail服務
#postfix start #打開postfix服務
#chkconfig postfix on #開機自動運作postfix服務(我設定後開機任舊不會自動運作postfix)
#service dovecot start #打開dovecot服務
#chkconfig dovecot on #開機自動運作dovecot服務
将postfix加入到root的組:
#usermod -G root postfix
檢查服務是否開啟,如果服務打開會顯示如下結果
#nmap localhost
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
110/tcp open pop3
如果沒有安裝nmap指令,可以使用netstat指令
#netstat -nlt
5. 添加郵件伺服器使用者并配置設定郵箱
首先添加郵件伺服器使用者
#adduser username //添加使用者
#passwd username //設定密碼
由于前面設定mail_location=mail:~/Maildir,是以,所建立的使用者目錄下有具有Maildir目錄,如果不存在該目錄,如下操作
#telnet ip位址 110
#user username
+OK
#pass password
+login
#chmod 700 /home/username/Maildir //很重要
6. 測試
首先,在另一台機器上打開一個終端,使用telnet指令測試
#telnet 10.1.0.3 25 //測試郵件伺服器postfix是否運作
Trying 10.1.0.3...
Connected to 10.1.0.3.
Escape character is ‘^]’
220 mail.abc.com ESMTP Postfix //連接配接成功
helo 10.1.0.3 //輸入helo加ip測試
250 mail.abc.com
#telnet 10.1.0.3 110 //測試dovecot是否正确運作
Trying 10.1.0.3...
Connected to 10.1.0.3.
Escape character is ‘^]’
+OK Dovecot ready
以上結果顯示,表明postfix和dovecot正常運作。
打開郵件用戶端,設定好就可以區域網路内發送郵件了,如果想要向外網發送郵件,隻需在DNS伺服器上,MX記錄加上郵件域名就可以了,形式如下:
IN MX 0 mail.abc.com
mail IN A 10.1.0.4