在CentOS 7下建立基本的postfix及dovecot服務

blog-title-postfix-googleapps

圖片來源:http://blog.bigdinosaur.org/postfix-gmail-and-you/

自從2000年網際網路大紅大紫以來,電子郵件一直是多數人使用的訊息溝通方式,雖然說這幾年的手機APP傳訊工具如Line、Facebook的使用率一直提升,但是在企業溝通或是專案進行時,電子郵件仍是大家的首選,而近年來如Yahoo、Google等科技大企業也都提供了免費的電子郵件服務,自行架設電子郵件服務似乎變成了多此一舉的動作,但實際上仍有許多企業或是個人工作室仍選擇自行架設,除了能客製化自已的需求,另外的目的就是想讓自家的資料就放在自已的伺服器中,這篇文章就從最簡單的建立電子郵件的服務說起,讓你也能快速建立自有的電子郵件伺服器。

要架設能與外界溝通的電子郵件伺服器,首先是要先擁有DNS的記錄,可先參考先前所寫的「在CentOS 7架設DNS服務及設定Bind chroot環境」內容,先將初始化的DNS環境建置起來。

此次我們要建置的電子郵件的內容如下:

  1. 伺服器名稱為 mail.kevinlinul.idv.tw -> 保留作為未來架設 webmail 的名稱。
  2. 寄件及收件伺服器名稱都使用 kevinlinul.idv.tw
  3. 預設只在伺服器本機才能寄收信(未來採用 webmail 寄信和收信的服務)
  4. 使用mailbox為信件檔案的格式

第一步,請先安裝 postfix 及 dovecot 的套件:

# yum install postfix dovecot -y

第二步,先設定 postfix 的設定檔:/etc/postfix/main.cf,修改以下的內容:(每一行內容都請先將前面的#去掉)

myhostname = mail.kevinlinul.idv.tw
->請寫入你的hostname(這筆資料要出現在DNS設定中)
mydomain = kevinlinul.idv.tw
-> 請寫入你的domain資料
myorigin = $mydomain
-> 通常會使用domain作為你的信件來源主機(你寄出的信件,來源位置@後面所接的名稱),如果不設定則會使用hostname
inet_interfaces = all
-> 設定監聽信件服務的介面,通常會使用all,也就是說只要是這個主機上的介面都接受
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
-> 設定可以接受信件的主機名稱
mail_spool_directory = /var/mail
-> 設定郵件檔案的位置,在 CentOS 7 上,這個位置是個 ln 目錄,連結到 /var/spool/mail

20141029補充:設定郵箱大小及每封信的大小限制
mailbox_size_limit = 0 (0為無限制,若要設定為1GB,範例為1024000000)
message_size_limit = 0

第三步,接下來是設定 dovecot,如果沒有特別設定,很容易就完成,只要編輯 /etc/dovecot/dovecot.conf,修改以下這行:

protocols = imap

第四步,修改 /etc/dovecot/conf.d/10-mail.conf,把以下此行打開:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

第五步,在 DNS 的記錄中加一筆 A Record 及 MX Record:

前略.....
mail.kevinlinul.idv.tw.   IN   A   youripaddress
kevinlinul.idv.tw.        IN   MX   10   mail.kevinlinul.idv.tw.

第六步,接下來重新啟動這 3 個服務:

# systemctl enable postfix.service
# systemctl enable dovecot.service
# systemctl restart named.service
# systemctl restart postfix.service
# systemctl restart dovecot.service

最基本的郵件伺服器就已完工!接下來可以做一下測試,用 mail 指令寄一封信到真實的email位置上,然後再從外部的信箱回信!

# mail kevin.lin@ossii.com.tw(用一個平常你真的收的到信的mail帳號)
# Subject: mail test
content
.
EOT

查看一下 /var/log/maillog 的記錄,若有以下的內容則代表成功寄出:

Oct 2 14:57:57 kevinlinul postfix/qmgr[8659]: 4B31583AC04D: from=<kevin@kevinlinul.idv.tw>, size=461, nrcpt=1 (queue active)
Oct 2 14:57:57 kevinlinul postfix/smtp[9116]: 4B31583AC04D: to=<kevin.lin@ossii.com.tw>, relay=server1.ossii.com.tw[59.124.230.215]......

然後再用剛剛測試收信的這個 mail 回信,若 postfix 有以下的內容則代表有收到:

Oct 2 15:01:45 kevinlinul postfix/qmgr[8659]: 72AB483AC072: from=<kevin.lin@ossii.com.tw>, size=1577, nrcpt=1 (queue active)
Oct 2 15:01:45 kevinlinul postfix/smtpd[9217]: disconnect from 59-124-230-215.HINET-IP.hinet.net[59.124.230.215]
Oct 2 15:01:45 kevinlinul postfix/local[9222]: 72AB483AC072: to=<kevin@kevinlinul.idv.tw>, relay=local, delay=0.07, delays=0.04/0.01/0/0.02, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 2 15:01:45 kevinlinul postfix/qmgr[8659]: 72AB483AC072: removed

完工!不過筆者不會用一般的MUA軟件來收信,所以目前這台郵件伺服器還不能夠從本機以外的電腦收發信~下一篇文章將說明如何架設 Roudcube Webmail 的服務,敬請期待~

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *