電子郵件系統基於郵件協議來完成電子郵件的傳輸,常見的郵件協議有:python
簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP):用於發送和中轉發出的電子郵件,佔用服務器的25/TCP端口。 郵局協議版本3(Post Office Protocol 3):用於將電子郵件存儲到本地主機,佔用服務器的110/TCP端口。 Internet消息訪問協議版本4(Internet Message Access Protocol 4):用於在本地主機上訪問郵件,佔用服務器的143/TCP端口。
在電子郵件系統中,爲用戶收發郵件的服務器名爲郵件用戶代理(Mail User Agent,MUA)。另外,既然電子郵件系統可以讓用戶在離線的狀況下依然能夠完成數據的接收,確定得有一個用於保存用戶郵件的「信箱」服務器,vim
這個服務器的名字爲郵件投遞代理(Mail Delivery Agent,MDA),其工做職責是把來自於郵件傳輸代理(Mail Transfer Agent,MTA)的郵件保存到本地的收件箱中。其中,這個MTA的工做職責是轉發處理不一樣電子郵件服務供應商之間的郵件,windows
把來自於MUA的郵件轉發到合適的MTA服務器。例如,咱們重新浪信箱向谷歌信箱發送一封電子郵件,這封電子郵件的傳輸過程以下圖所示:安全
一個最基礎的電子郵件系統確定要能提供發件服務和收件服務,爲此須要使用基於SMTP協議的Postfix服務程序提供發件服務功能,並使用基於POP3協議的Dovecot服務程序提供收件服務功能。服務器
這樣一來,用戶就可使用Outlook Express或Foxmail等客戶端服務程序正常收發郵件了。電子郵件系統的工做流程以下圖所示:dom
第1步:配置服務器主機名稱,須要保證服務器主機名稱與發信域名保持一致:post
[root@zhangjh ~]# vim /etc/hostname mail.jianghua.com [root@zhangjh ~]# hostname mail.jianghua.com
第2步:清空iptables防火牆默認策略,並保存策略狀態,避免因防火牆中默認存在的策略阻止了客戶端DNS解析域名及收發郵件:測試
[root@zhangjh ~]# iptables -F [root@zhangjh ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
第3步:爲電子郵件系統提供域名解析:spa
[root@zhangjh ~]# vim /etc/named.conf options { listen-on port 53 { any; }; #修改成any listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; #修改成any
[root@zhangjh ~]# vim /etc/named.rfc1912.zones zone "jianghua.com" IN { type master; file "jianghua.com.zone"; allow-update {none;}; };
[root@zhangjh ~]# vim /var/named/jianghua.com.zone $TTL 1D @ IN SOA jianghua.com. root.jianghua.com. ( 0;serial 1D;refresh 1H;retry 1W;expire 3H);minimum NS ns.jianghua.com. ns IN A 192.168.38.251 @ IN MX 10 mail.jianghua.com. mail IN A 192.168.38.251
[root@zhangjh ~]# vim /var/named/jianghua.com.zone [root@zhangjh ~]# vim /var/named/jianghua.com.zone [root@zhangjh ~]# systemctl restart named [root@zhangjh ~]# systemctl enable named ln -s '/usr/lib/systemd/system/named.service' '/etc/systemd/system/multi-user.target.wants/named.service'
修改好配置文件後記得重啓bind服務程序,這樣電子郵件系統所對應的服務器主機名即爲mail.jianghua.com,而郵件域爲@jianghua.com。把服務器的DNS地址修改爲本機IP地址代理
第1步:安裝Postfix服務程序。
[root@zhangjh ~]# yum install postfix -y [root@zhangjh ~]# systemctl disable iptables
第2步:配置Postfix服務程序。(/etc/ postfix/main.cf)
Postfix服務程序主配置文件中的重要參數:
參數 | 做用 |
myhostname | 郵局系統的主機名 |
mydomain | 郵局系統的域名 |
myorigin | 從本機發出郵件的域名名稱 |
inet_interfaces | 監聽的網卡接口 |
mydestination | 可接收郵件的主機名或域名 |
mynetworks | 設置可轉發哪些主機的郵件 |
relay_domains | 設置可轉發哪些網域的郵件 |
[root@zhangjh ~]# vim /etc/postfix/main.cf 74 # 75 #myhostname = host.domain.tld 76 myhostname = mail.jianghua.com #定義一個名爲myhostname的變量,用來保存服務器的主機名稱 82 # 83 mydomain = jianghua.com #定義一個名爲mydomain的變量,用來保存郵件域的名稱 97 # 98 #myorigin = $myhostname 99 myorigin = $mydomain #調用前面的mydomain變量,用來定義發出郵件的域 114 #inet_interfaces = $myhostname 115 #inet_interfaces = $myhostname, localhost 116 inet_interfaces = all #定義網卡監聽地址 164 # 165 mydestination = $myhostname,$mydomain #定義可接收郵件的主機名或域名列表
第3步:建立電子郵件系統的登陸帳戶,重啓postfix服務
[root@zhangjh ~]# useradd boss [root@zhangjh ~]# echo "zhangjianghua66666" | passwd --stdin boss Changing password for user boss. passwd: all authentication tokens updated successfully. [root@zhangjh ~]# systemctl restart postfix.service [root@zhangjh ~]# systemctl enable postfix
Dovecot是一款可以爲Linux系統提供IMAP和POP3電子郵件服務的開源服務程序,安全性極高,配置簡單,執行速度快,並且佔用的服務器硬件資源也較少,所以是一款值得推薦的收件服務程序。
第1步:安裝Dovecot服務程序軟件包。
[root@zhangjh ~]# yum install dovecot -y
第2步:配置部署Dovecot服務程序。
[root@zhangjh ~]# vim /etc/dovecot/dovecot.conf 23 # Protocols we want to be serving. 24 protocols = imap pop3 lmtp #修改電子郵件協議,爲imap,pop3,lmtp 25 disable_plaintext_auth = no #容許用戶使用明文進行密碼驗證 48 login_trusted_networks = 192.168.38.0/24 #設置容許登陸的網段地址,默認容許全部人
第3步:配置郵件格式與存儲路徑。
[root@zhangjh ~]# vim /etc/dovecot/conf.d/10-mail.conf 24 # mail_location = maildir:~/Maildir 25 mail_location = mbox:~/mail:INBOX=/var/mail/%u #指定要將收到的郵件存放到服務器本地的哪一個位置,默認已經設置好,去掉註釋便可。 26 # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
第4步:而後切換到配置Postfix服務程序時建立的boss帳戶,並在家目錄中創建用於保存郵件的目錄。記得要重啓Dovecot服務並將其添加到開機啓動項中。
[root@zhangjh ~]# su - boss [boss@mail ~]$ mkdir -p mail/.imap/INBOX [boss@mail ~]$ exit logout [root@zhangjh ~]# systemctl restart dovevot Failed to issue method call: Unit dovevot.service failed to load: No such file or directory. [root@zhangjh ~]# systemctl restart dovecot [root@zhangjh ~]# systemctl enable dovecot ln -s '/usr/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
windows系統用foxmail測試便可。郵箱名:boss@jainghua.com 密碼:password