一、基礎原理
1、郵件服務器是一種用來負責電子郵件收發管理的設備。比網絡上免費的郵箱更加安全和高效,因此一直是企業公司的必備設備。
簡單郵件傳輸協議(SMTP)是因特網電子郵件系統首要的應用層協議。它使用由TCP提供的可靠的數據傳輸服務把郵件消息從發信人的郵件服務器傳送到收信人的郵件服務器。跟大多數應用層協議一樣,SMTP也存在兩個端:在發信人的郵件服務器上執行的客戶端和在收信人的郵件服務器上執行的服務器端。SMTP的客戶端和服務器端同時運行在每個郵件服務器上。當一個郵件服務器在向其他郵件服務器發送郵件消息時,它是作爲SMTP客戶在運行。當一個郵件服務器從其他郵件服務器接收郵件消息時,它是作爲SMTP服務器在運行。
POP3:Post Office Protocol
IMAP4: Internet Mail Access Protocol
SASL:Simple Authintication Secure Layer ,簡單認證安全層
MTA:郵件傳輸代理,SMTP服務器
LDAP:Lightweight Directory Access Protocol
2、MTA:郵件傳輸代理,SMTP服務器
sendmail,UUCP
單體結構,SUID,配置文件語法(m4編寫)
qmail
postfix:模塊化設計,安全,跟sendmail兼容,效率高
exim:MTA
Exchange(Windows,異步消息協作平臺)
3、MDA:
procmail
maildrop
4、MRA:
pop3 ,imap4
cyrus-imap
dovecot
5、MUA:
outlook express ,outlook
foxmail
thunderbird
evolution
mutt(文本界面)
6、webmail:
openwebmail
squirrelmail
extmail(extman)
二、搭建郵件服務器的部署軟件
postfix +SASL (courier-authlib) + mysql 發送郵件
Dovecot + mysql 接受郵件
extamil+ extman+http 網頁顯示
1、postfix的配置文件
postfix模塊化:
master: /etc/postfix/master.cf
mail:/etc/postfix/main.cf
參數=值 :參數必須寫在行的絕對行首,以空白開頭的行被認爲是上一行的延續
2、postconf:配置postfix
-d:顯示默認的配置
-n:修改了得配置
-m:顯示支持的查找表類型
-A:顯示支持的SASL客戶端插件類型
-e PARMATER-VALUE: 更改某參數配置信息,並保存至main.cf文件中
3、smtp狀態碼:
1XX:純信息
2XX:正確
3XX:上一步操作尚未完成,需要繼續補充
4XX:暫時性錯誤
5XX:永久性錯誤
4、smtp協議命令:
hello (smtp協議)
ehllo(esmtp協議)
mail from
rcpt to
三、實驗環境
1、硬件環境:
Linux服務器一臺,IP地址:172.28.5.159
Window系統一臺,做測試使用,需要安裝outlook,並與服務器在同一個局域網內
2、服務器操作系統
四、搭建郵件服務器內容如下:
1、搭建DNS服務器
2、搭建postfix服務器及普通發信
3、普通收信
4、認證收信
5、squirrelmail收發郵件 (搭建網頁收發郵件)
6、郵件羣發功能配置
7、郵件發送容量大小配置
8、通過配置用戶磁盤配額實現限制用戶郵箱空間
五、配置步驟
1、搭建DNS服務器
(1)安裝DNS服務
yum install bind -y
(2)修改主配置文件
vim /etc/named.conf
(3)檢查語法錯誤
named-checkconf
(4)配置區域配置文件
vim /etc/named.rfc1912.zones
在文件末尾加入以下內容:
檢查語法錯誤: named-checkconf
(5)區域數據文件配置
複製文件添加-P 表示複製過來的文件保持權限不變。
vim melvin1.com.zone
(6)創建反向區域數據配置文件
cp -p named.localhost melvin1.com.local
vim melvin1.com.local
named-checkconf 檢查語法錯誤
(7)重啓服務,進行驗證
(8)設置服務器域名並進行解析驗證
vim /etc/resolv.conf
解析驗證:
2、搭建postfix並配置基本發信功能
(1)驗證是否支持cyrus dovecot功能
postconf -a
(若postfix已安裝好,則會支持這兩個功能,若不支持,表示postfix未安裝好;CentOS 7開始默認系統自帶postfix。)
systemctl start postfix # 啓動postfix服務
(2)配置主配置文件
vim /etc/postfix/main.cf
修改以下內容信息:
myhostname=mail.melvin1.com 郵件服務器的主機名
mydomain=melvin1.com 郵件域
myorigin=$mydomain 往外發郵件的郵件域
inet_interfaces=172.28.5.159, 127.0.0.1 監聽的網卡 (注意,兩個地址之間有空格)
mydestination=$myhostname, $mydomain 服務的對象
home_mailbox=maildir/ 郵件存放的目錄
保存以上的修改並退出。
檢查語法是否正確: postfix check
(3)重啓服務並查看postfix
(4)增加郵件測試賬號
(5)連接服務器25號端口進行簡單發信測試
[root@localhost ~]# telnet mail.melvin1.com 25
Trying 172.28.5.159... 連接成功
Connected to mail.melvin1.com.
Escape character is '^]'.
220 mail.melvin1.com ESMTP Postfix
helo mail.melvin1.com 聲明本機的主機
250 mail.melvin1.com
mail from:[email protected] 聲明發件人地址
250 2.1.0 Ok
rcpt to:[email protected] 聲明收件人地址
250 2.1.5 Ok
data 寫正文
354 End data with <CR><LF>.<CR><LF>
I am melvin !!!
. 正文結束標記
quit 退出
3、收信驗證
方法一: 搭建dovecot 提供收信服務
yum install -y dovecot 安裝dovecot軟件
修改配置文件:vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
listen = *,::
!include conf.d/*.conf
在最後添加以下信息:
ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
然後重啓 dovecot 服務: systemctl restart dovecot
收信驗證:
telnet mail.melvin1.com 110
user tom //收件人
pass password //郵箱密碼
list //列表查看郵件
retr 1 // 讀取編號爲1的郵件
quit // 退出郵箱
方法二: 使用win系統上的郵箱客戶端系統進行收信驗證
打開foxmail程序,更改賬戶配置。
4、發信認證部分:
(1)編輯認證文件:
yum install -y cyrus-sasl* 安裝cyrus-sasl 軟件
vim /etc/sasl2/smtpd.conf
vim /etc/sysconfig/saslauthd
o
啓動服務:
systemctl start saslauthd
systemctl enable saslauthd
(2)編輯postfix主配置文件,添加以下信息:
vim /etc/postfix/main.cf
添加完成後,檢查語法錯誤: postfix check
重啓postfix服務: systemctl restart postfix
(3)測試普通發信驗證
(4)將郵件用戶名和密碼生成密文
(5)字符終端測試認證發信:
telnet mail.melvin1.com 25
ehlo mail.melvin1.com //注意是ehlo 不是helo
auth login //認證登錄
bWVsdmlu 加密用戶名
cGFzc3cwcmQ= 加密的密碼
發送成功,能夠往外發送郵件了。
5、配置squirrelmai收發郵件(小松鼠網頁瀏覽郵箱)
(1)安裝httpd, mariadb, php 服務
yum install -y httpd
yum install -y mariadb-server mariadb
yum install -y php
yum install -y php-mysql
yum install -y php-gd
yum install -y libjpeg*
yum install -y php-ldap
yum install -y php-odbc
yum install -y php-pear
yum install -y php-xml
yum install -y php-xmlrpc
yum install -y php-mhash
(2)編輯Apache 主配置文件
vim /etc/httpd/conf/httpd.conf 修改內容如下:
ServerName mail.melvin1.com
DirectoryIndex index.html index.php
(3)編輯PHP主配置文件
vim /etc/php.ini 修改內容如下:
date.timezone=PRC
(4)啓動服務並查看端口
(5)網頁測試,瀏覽器輸入: 172.28.5.159
(6)、編輯mysql數據庫安全配置
(7)編輯php測試文件
vim /var/www/html/index.php
(8)編輯mysql數據庫
進入數據庫,建立授權賬號
mysql -u root -p 然後輸入數據庫密碼
創建數據庫等相關信息:
測試數據庫工作是否正常:
vim /var/www/html/index.php
瀏覽器輸入地址,進行測試:
(9)下載小松鼠網頁郵箱安裝包:
下載網址:http://www.squirrelmail.org/download.php
上傳至郵件服務器:
(10)解壓:
tar xzvf squirrelmail-webmail-1.4.22.tar.gz 解壓安裝包
tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22 將漢化包解壓到安裝包文件裏
cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail 複製文件到http默認目錄下
cd /var/www/html/mail/
ls
(11)創建網頁郵箱默認配置文件
(12)編輯配置文件:
vim config.php, 修改以下內容:
(13)網頁驗證測試: 172.28.5.159/mail
6、郵件羣發配置
(1)設置郵件組
vim /etc/aliases 添加以下信息:
student: melvin,tom
保存退出後,生成新的hash數據庫文件:newaliases
(2)重啓postfix服務
systemctl restart postfix
(3)添加lucy郵件測試用戶
(4)使用客戶端用lucy用戶給student組發送郵件