CentOS 下如何搭建郵件伺服器?
有個EMAILOS你下個用用吧,就基於CENTOS的實現的
plz google postfix.
這幾天因為產品需求:需選定一套開源的郵件系統進行業務改造,通過資料比對,再加上身邊的這本《構建高可用Linux伺服器》第8章「如何構建開源免費的企業級郵件系統」的推薦,最終選擇了iRedMail郵件系統進行詳細考察。(關於郵件系統的掃盲工作,也可看這本書)
第一步肯定是要部署試用下。
通過官網了解iRedMail;
下載最新的release包;
選擇相應的linux發行版(我選的是CentOS),需要注意的:
最好保證linux系統是純凈的,我的系統就因為已經裝了MySQL導致安裝失敗。
由於http://iredmail.org的域名被牆,請將iRedMail-x.y.z/pkgs/get_all.sh中的http://iredmail.org執行全局替換為IP地址,shell命令 %s/http://iredmail.org/173.254.22.21/g 。
網上關於搭建iRedMail的文章不少,但是也許是作者遺漏了什麼或是版本不一致的問題,有些並不能將最新版的iRedmail安裝成功或者後續配置講的並不清楚。但是有一篇文章我覺得寫得很詳細也很靠譜,推薦給大家。《CentOS 安裝iRedMail郵件方法》。
安裝成功後會有如下提示
URLs of installed web applications: *
- Webmail: https://mail.yw.com/mail/
- Admin Panel (iRedAdmin): https://mail.yw.com/iredadmin/
+ Username: postmaster@yw.com, Password: yaowei *
Congratulations, mail server setup completed successfully. Please
read below file for more information: *
- /root/iRedMail-0.8.4/iRedMail.tips *
And its sent to your mail account postmaster@yw.com. *
Please reboot your system to enable mail services. *
其中 https://mail.yw.com/iredadmin/ 為管理平台頁面,可以在其中對郵件系統進行監控、設置、添加用戶...
https://mail.yw.com/mail/就是自己的郵件頁面了,很舒服簡潔的界面,可以試操作給他人發個郵件。
我們上面說要按業務改造為自己的郵件系統,那肯定是要改動源碼的。開始我還有個誤解以為整個郵件系統都是iRedMail的作者寫的,最後看到源碼後才知道iRedMail的作者寫的是iredadmin這個管理端(作者是個中國同胞:張煌彬。非常感謝他,也希望國產開源越來越好),使用的是web.py框架。
linux下郵件伺服器的搭建大致分為三個步驟
- 準備工作(真實的生產環境下需要)
- 發送伺服器安裝及配置 (Postfix)
- 接收伺服器安裝及配置(dovecot)
一、 準備工作
1. 為郵件伺服器添加DNS解析
雖然不加DNS解析也能把郵件發出去,但會被大多數郵件伺服器當作垃圾郵件。根據我們的實際經驗,需要添加三條DNS解析記錄:A記錄、MX記錄、TXT記錄
二、發送伺服器安裝及配置 (Postfix)
1、卸載Sendmail
查看當前伺服器環境中是否已經安裝了Sendmail 如果已經安裝了 執行下面的命令進行卸載
yum -y remove sendmail
我使用的環境是CentOS6.4 默認沒有安裝sendmail
[root@localhost ~]# rpm -qa | grep sendmail
2、安裝Postfix
查看當前伺服器環境中是否已經安裝了Postfix 如果沒有安裝了 執行下面的命令進行安裝
yum -y install postfix*
我使用的環境是CentOS6.4 默認已經安裝了Postfix
[root@localhost ~]# rpm -qa | grep postfix
postfix-2.6.6-2.2.el6_1.i686
3、配置Postfix
[root@localhost ~]# vi /etc/postfix/main.cf
以下配置示例假設要配置的域名是http://cnblogs.info,郵件伺服器主機名是http://mail.cnblogs.info
a) 修改myhostname
myhostname = http://mail.cnblogs.info
myhostname 參數即是我們的郵件伺服器的主機名稱,是由英文字母或數字所組成,比如http://www.google.com或http://mail.google.com就是一個Hostname
b) 修改mydomain
mydomain = http://cnblogs.info
mydomain參數設定網域名稱(Domain Name),主機名稱通常都是在建立在網域名稱之內,像是http://www.google.com則是網頁服務,http://mail.google.com則會是郵件主機服務,通常網域名稱都會是主機名稱(Hostname)去掉第一個掉包含前面的文字部份,比如說http://www.google.com的Domain則是http://google.com
c) 修改myorigin
myorigin = $mydomain
myorigin是我們的郵件位址在」@」後面的文字內容,比如像是me@medesky.me,http://medesky.me就是我們的Origin Name
d) 修改smtp監聽埠
inet_interfaces = all
inet_interfaces 參數指定postfix系統監聽的網路介面。Postfix預設只會監聽來自於本機端的所傳出的封包,必須使用上列設定,才可以傳收所有來自於網路端的所有封包
e) 修改 inet_protocols
修改Postfix的通訊協定,目前網路的協定主流有IPv4與IPv6,在大部份的情況下,我們都是利用IPv4在通訊的,如果你的Mail Server沒有需要使用到IPv6,可以做以下的設定修改
inet_protocols = ipv4
f) 修改mydestination
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
mydestination參數設定能夠接收信件的主機名稱,Postfix預設只能收到設定的Hostname與Domain Name以及本機端的信件,此步驟是再增加能收信件的網路名稱
g) 設定信任用戶端
mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/etc/postfix/access
mynetworks 參數設定信任的用戶端,當要寄信時,會參考此值,若非信任的用戶,則不會幫你的信件轉到其它的MTA主機上
h) 設定relay_domain轉發郵件域名
規範可以relay 的MTA 主機位址,通常這個都直接設為mydestination
relay_domains = $mydestination
i) 設定郵件別名的路徑
檢查」 alias_maps」設定是否為以下字串設定
alias_maps = hash:/etc/aliases
j) 設定指定郵件別名表資料庫路徑
檢查」 alias_ database」設定是否為以下字串設定
alias_database = hash:/etc/aliases
k) 執行以下命令
用於設定郵件主機使用許可權與過濾機制及郵件別名
# postmap hash:/etc/postfix/access
# postalias hash:/etc/aliases
4、重啟postfix使設置生效(使smtp服務的25號埠打開)
[root@localhost ~]# service postfix restart
關閉 postfix: [確定]
啟動 postfix: [確定]
[root@localhost ~]# netstat -anp | grep :25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16331/master
tcp 0 0 :::25 :::* LISTEN 16331/master
5、測試
a) 寄信測試
此時我們已經可以利用此台主機使用smtp收送電子郵件了, 利用mail指令來測試
[root@localhost ~]# mail root@cnblogs.info
Subject: test
test
.
EOT
b) 收信測試
當我們從內部或外部寄信過來時,預設的郵件存放位址如下:
/var/spool/mail(或/var/mail)
從此目錄里查看帳號名稱的檔案,我們所收發的信件都會存在這裡
也可以通過 mail -u 命令查看
[root@localhost ~]# mail -u root
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/mail/root": 1 message 1 new
&>N 1 root Sat Jun 15 12:48 18/561 "test"
1
Message 1:
From root@cnblogs.info Sat Jun 15 12:48:37 2013
Return-Path: &
X-Original-To: root@cnblogs.info
Delivered-To: root@cnblogs.info
Date: Sat, 15 Jun 2013 12:48:36 +0800
To: root@cnblogs.info
Subject: test
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: root@cnblogs.info (root)
Status: R
test
三、接收伺服器安裝及配置(dovecot)
1、安裝dovecot
[root@localhost ~]# yum install -y dovecot*
2、配置dovecot
[root@localhost dovecot]# vi /etc/dovecot/dovecot.conf
a) 修改protocols支持pop3和imap
protocols = imap pop3
3) 啟動dovecot服務並開啟110、143埠
[root@localhost dovecot]# service dovecot restart
停止 Dovecot Imap: [失敗]
正在啟動 Dovecot Imap: [確定]
[root@localhost dovecot]# netstat -anp | grep :110
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 17607/dovecot
[root@localhost dovecot]# netstat -anp | grep :143
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 17607/dovecot
sendmail、postfix、qmail
可以使用zimbra的開源版本,其本身也是基於postfix開源而來,集成了
Clamav、Amavisd和DSPAM這些開源技術。安裝比單純使用postfix再配上clamav,amavisd等一起簡單,配置集中,界面比較友好。
1、下載U-Mail for CentOS(6.X)獨立安裝包
註:最新版本請參考http://www.comingchina.com/downloads/下載頁面。
2、使用root用戶登錄系統,將壓縮包放在/root目錄下,並使用unzip命令進行解壓,如下圖:
3、解壓後產生u-mail目錄,使用cd u-mail命令切換目錄,並運行sh install.sh執行安裝腳本,如下圖:
4、出現U-Mail安裝嚮導,輸入郵箱域名後,選擇「Next」確認,如下圖:
註:如果您的郵件伺服器主機是http://mail.domain.com,那麼域名輸入http://domain.com(請更改成自己的域名)。
5、輸入mysql數據的root帳號密碼(請修改成自己需要的密碼),輸入後選擇「Next」確認,如下圖:
6、輸入域管理員(admin)的登錄密碼(請修改成自己需要的密碼),輸入後選擇「Next」確認,如下圖:
7、輸入超域管理員(administrator)的登錄密碼(請修改成自己需要的密碼),輸入後選擇「Next」確認,如下圖:
8、輸入系統管理員(system)的登錄密碼,輸入後選擇「Next」確認,如下圖:
9、指定用戶郵件存儲目錄,並選擇「Next」確認,如下圖:
10、設置Apache監控埠,按照默認設置即可。並選擇「Next」確認,如下圖:
11、設置WebMail運行埠,按照默認設置即可(默認為80埠,如果想使用其它埠請更改)。並選擇「Next」確認,如下圖:
12、開始進行安裝,如下圖:
13、彈出「安裝完成」窗口,點擊「OK」按鈕。如下圖:
14、建議重啟下伺服器,輸入reboot命令,如下圖:
15、登錄到系統管理後台,導入授權文件。
登錄地址:http://mail.domain.com/webmail/admin/ (請更換成自己的域名)
帳號:system(U-Mail系統方面設置),初始密碼為123456
postfix
推薦閱讀:
※【技術人快報】摩拜單車多地區現Bug+iCloud完成中國本土化落地
※如何更換CentOS(Linux)系統默認字體?
※如何把VPS上的整個系統備份下來?