Centos搭建郵件服務器

今天主要是閒的無聊,買的VPS不能白白的浪費掉啊,就搭個郵件服務來玩,使用的是Postfix和Dovecot來搭建,用Foxmail客戶端登陸測試收信、發信均沒問題
先了解幾個email有關的名詞:

  • MUA:用戶代理端,即用戶使用的寫信、收信客戶端軟件

  • MTA:郵件傳送端,即常說的郵件服務器,用於轉發、收取用戶郵件。

  • MDA:郵件代理端,相當於MUA和MTA的中間人,可用於過濾垃圾郵件。

  • POP:郵局協議,用於MUA連接服務器收取用戶郵件,通信端口110。

  • IMOP:互聯網應用協議,功能較POP多,通信端口143。

  • SMTP:簡單郵件傳送協議,MUA連接MTA或MTA連接MTA發送郵件使用此協議,通信端口25。

postfix正是提供MTA功能的開源軟件,是用來收發郵件的,它沒有web頁面,所以要配合本地的MUA(類似於foxmail,outlook之類的軟件)來進行可視化的郵件管理操作。
Dovecot 是一個開源的IMAP 和POP3 郵件服務器,支持Linux/Unix 系統。作爲IMAP和POP3服務器,Dovecot爲郵件用戶代理(MUA)提供了一種訪問服務器上存儲的郵件的方法(簡單理解爲檢測用戶的合法性)。但是,Dovecot並不負責從其他郵件服務器接收郵件。Dovecot只是將已經存儲在郵件服務器上的郵件通過MUA顯示出來。

好了下面就開始幹吧

安裝Postfix和Dovecot

在安裝之前,首先我們先卸載默認的sendmail(如果有的話),因爲它是系統默認的MTA程序

1
yum remove sendmail

然後就可以安裝了:

1
2
yum install postfix
yum install cyrus*

cyrus函數庫爲postfix的stmp提供安全的驗證支持
修改MTA(默認郵件傳輸代理)

1
alternatives --config mta

檢查一下是不是已經設置成功了。

1
alternatives --display mta

第一行可以看到mta的狀態。 例如:mat - status is manual.
安裝Dovecot:

1
yum install dovecot

設置域名解析

需要添加兩條記錄,如果要設置過濾垃圾郵件的規則的話,還要再加一條,關鍵字:SPF和TXT記錄類型
設置後一段時間後纔會生效,10幾分鐘吧

主機記錄記錄類型記錄值MX優先級
@(不填即可,默認會給這個)MXmail.bfchengnuo.com10
mailA服務器的公網IP-

下面再說說這兩條記錄的作用

  • MX 記錄
    這是爲郵件服務器專門設計的,用於指定負責處理髮往收件人域名的郵件服務器,簡單郵件傳輸協議(SMTP)會根據 MX 記錄的值來決定郵件的路由過程。
    比如用 Gmail 往 163 發郵件,因爲不是一個域的,在“轉發”的過程中需要根據收信人地址(@163.com)查找 DNS 以確定對方域的 IP ,這樣才能正確的投遞

  • A 記錄
    這個是爲了免登陸的,正常情況下,我們發郵件需要登陸自己的賬戶,那麼 Gmail 往 163 進行“轉發”也是在發郵件,這個過程顯然不可能也要進行登陸,這就用到了 A 記錄
    Gmail 轉發郵件時通過 ehlo 打招呼的時候表明自己的郵件服務器域,也就是類似 mail.gmail.com這樣的,就是指向發郵件的服務器;
    對方(163)收到後進行確認,拿着這個地址查 DNS,找出對應的 IP,然後覈對發送人是不是這個 IP,這樣就可以確認發送人是服務器而不是個人用戶,就不需要登陸了

大型的郵件系統收信服務器和發信服務器不會是在一臺物理服務器上,比如基本都是 imap.gmail.com 收信服務器;smtp.gmail.com 發信服務器;對應着協議,以及現在用的比較少的 POP3

POP3 協議允許電子郵件客戶端下載服務器上的郵件,但是在客戶端的操作(如移動郵件、標記已讀等),不會反饋到服務器上,比如通過客戶端收取了郵箱中的3封郵件並移動到其他文件夾,郵箱服務器上的這些郵件是沒有同時被移動的 。
而 IMAP 提供 webmail 與電子郵件客戶端之間的雙向通信,客戶端的操作都會反饋到服務器上,對郵件進行的操作,服務器上的郵件也會做相應的動作。
http://help.163.com/10/0203/13/5UJONJ4I00753VB8.html

配置Postfix

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
vi /etc/postfix/main.cf

#大約在75行,postfix主機名,修改成你的域名 此項需要添加A記錄並指向postfix所在主機公網IP
myhostname = mail.bfchengnuo.com

#大約在83行,後面爲主機域名
mydomain = bfchengnuo.com

#大約在100行,設置postfix郵箱的域名後綴爲$mydomain
myorigin = $mydomain

#大約在117行
#指定postfix系統監聽的網絡接口
#若註釋或填入公網ip  服務器的25端口將對公網開放
#默認值爲all 即監聽所有網絡接口
#此項指定localhost後 本機postfix就只能發郵件不能接收郵件
inet_interfaces = all

#大約在120行,指定網絡協議
inet_protocols = ipv4

#大約在165行
#指定postfix接收郵件時收件人的域名,換句話說,也就是你的postfix系統要接收什麼樣的郵件。
#此項配置中$myhostname表示postfix接受@$myhostname爲後綴的郵箱的郵件 逗號分割支持指多項
#此項默認值使用myhostname
mydestination = $myhostname, localhost.$mydomain, localhost

#大約在266行
#指定你所在的網絡的網絡地址
#這裏我填的依次是公網IP、內網IP、本地IP
#請依據實際情況修改
mynetworks = 40.120.xxx.xxx, 10.200.xx.xxx, 127.0.0.1

#大約在571行
#指定MUA通過smtp連接postfix時返回的header頭信息
#原始配置附帶有postfix版本號 去掉即可,此項酌情處理
smtpd_banner = $myhostname ESMTP

#SMTP Config  ,將下面的內容添加到文件尾部即可
# 規定郵件最大尺寸爲10M
message_size_limit = 10485760
# 規定收件箱最大容量爲1G
mailbox_size_limit = 1073741824
# SMTP認證
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

修改好了之後使用/etc/rc.d/init.d/postfix start開啓postfix
使用chkconfig postfix on將postfix開機啓動。

配置Dovecot

還是修改配置文件,注意要修改的文件比較多,跟着改即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
vi /etc/dovecot/dovecot.conf
# 26行: 如果不使用IPv6,請修改爲*
listen = *

vi /etc/dovecot/conf.d/10-auth.conf
# 9行: 取消註釋並修改
disable_plaintext_auth = no
# 97行: 添加
auth_mechanisms = plain login

vi /etc/dovecot/conf.d/10-mail.conf
# 30行: 取消註釋並添加
mail_location = maildir:~/Maildir

vi /etc/dovecot/conf.d/10-master.conf
# 88-90行: 取消註釋並添加 Postfix smtp 驗證
unix_listener /var/spool/postfix/private/auth {
   mode = 0666
   user = postfix
   group = postfix
}

# 開啓服務和加入開機啓動
/etc/rc.d/init.d/dovecot start
chkconfig dovecot on

使用

一切都弄好以後,就可以使用Foxmail等第三方軟件來收發郵件了。
在這裏需要說一下,系統用戶就是郵件的用戶,例如root,就是一個郵箱用戶,郵箱是[email protected],密碼就是root的密碼,所以需要創建用戶,只要使用useradd創建用戶,再使用passwd設置密碼。
不建議使用root用戶來測試,還是useradd一個admin用戶比較好

如果使用的是Foxmail,輸入E-mail地址和密碼後,選擇接收服務器類型是IMAP,郵件賬號是你的用戶名(不是郵箱地址)
下面的IMAP和SMTP服務器保持默認的mail.bfchengnuo.com即可

還有就是:一定別忘了開啓服務器的相應的端口!比如基本的143和25端口,對應上面的兩個服務
就醬子

參考其他文章:

Linux系統下郵件服務器的搭建(Postfix+Dovecot)

http://lomu.me/post/linux-email-server


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章