Shell 腳本自動安裝公司內部郵箱服務器--Postfix

簡介:

Postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要爲使用最廣泛的sendmail提供替代品的一個嘗試。在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用sendmail,每天投遞上億封郵件。這真是一個讓人吃驚的數字。Postfix試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性。

搭建企業郵箱的好處:

1.全面統一企業形象,方便企業形象的推廣,同時可以方便產品的推廣。
2.對於員工流動,造成信息外泄和資源無法保留提供保證;如果員工使用個人郵箱,離職時必然帶走郵箱;
3.便於企業統一管理,設置權限和分文別類,方便企業內部信息交流,溝通和協助;
4.優於個人郵箱的穩定性,安全性及其服務性;
5.有海外轉發服務器,這樣對於國外郵件的往來不容易丟失和退回郵件。
6.還有一些其它功能,比如防止病毒、手機短信提醒、郵件傳真、備份、監控

腳本環境

1.linux centos 7 系統
2.系統可連接外網
3.網絡模式:NAT模式

實驗步驟

1.上傳postfix腳本到Linux系統/root目錄下

chmod +x *.sh 添加執行權限

2.腳本postfix.sh詳解

#!/bin/bash

#自動本機獲取網段
net=`ifconfig ens33 | grep "netmask" | awk '{print $2}' | cut -c 1-9`
#自動獲取本機ip
ip=`ifconfig ens33 | grep "netmask" | awk '{print $2}'`

#下載postfix相關軟件包
down_postfix()
{
#關閉防火牆,安全性
systemctl stop firewalld
setenforce 0
echo -e "\033\t[34m 正在下載postfix相關軟件包 ... \033[0m" && sleep 1
yum install -y bind postfix dovecot
}

#修改相關配置文件
setup_file()
{
echo -e "\033\t[34m 正在修改DNS相關配置文件 ... \033[0m" && sleep 1
#編輯DNS主配置文件
#允許監聽所有端口
sed -i "13s/127.0.0.1/any/" /etc/named.conf
#允許接收所有網段
sed -i "21s/localhost/any/" /etc/named.conf

#修改編輯區域配置文件
#定義域名及區域數據配置文件名
sed -i "24i zone \"\benet.com\"\ IN {\n\
type master;\n\
file \"\benet.com.zone\"\;\n\
allow-update { none; };\n\
};" /etc/named.rfc1912.zones

#新建正向解析文件
cp -p /var/named/named.localhost /var/named/benet.com.zone
#添加管理員郵箱
sed -i "2s/rname.invalid./admin/" /var/named/benet.com.zone
#添加本機ip地址
sed -i "9s/127.0.0.1/$ip/" /var/named/benet.com.zone
#指定郵件交換記錄
sed -i "10c IN MX 5 mail.benet.com." /var/named/benet.com.zone
#解析主機地址
echo "mail IN A $ip" >>/var/named/benet.com.zone
#添加本機解析hosts文件
echo "$ip mail.benet.com" >>/etc/hosts

#修改postfix相關配置文件
echo -e "\033\t[34m 正在修改postfix相關配置文件 ... \033[0m" && sleep 1
#修改發信服務器主機名
sed -i "75c myhostname = mail.benet.com" /etc/postfix/main.cf
#修改發信服務器域名
sed -i "83c mydomain = benet.com" /etc/postfix/main.cf
#修改發信人地址郵件域名
sed -i "99s/#//" /etc/postfix/main.cf
#開啓監聽ip地址爲all
sed -i "113s/#//" /etc/postfix/main.cf
#關閉只監聽本地ip
sed -i "116s/^/#/" /etc/postfix/main.cf
#設置郵件存放位置
sed -i "419s/#//" /etc/postfix/main.cf
#修改收件人地址和郵件域名
sed -i '164c mydestination = $mydomain, $myhostname' /etc/postfix/main.cf

#修改devocot相關配置文件
echo -e "\033\t[34m 正在修改devocot相關配置文件 ... \033[0m" && sleep 1
#開啓收件服務
sed -i "24s/#/ /" /etc/dovecot/dovecot.conf
#設置允許收件的網段
sed -i "48c login_trusted_networks = $net.0/24" /etc/dovecot/dovecot.conf
#開啓郵箱的位置及格式
sed -i "24s/#/ /" /etc/dovecot/conf.d/10-mail.conf
}

#重啓所有服務
restart_service()
{
#重啓dns服務
systemctl restart named
#重啓發件postfix服務
systemctl restart postfix
#重啓收件dovecot服務
systemctl restart dovecot
}

#函數彙總
main()
{
down_postfix && setup_file && restart_service
}

#執行所有函數
main

3.驗證腳本

1.執行腳本

./postfix.sh #運行腳本

2.查看服務端口

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

3.創建測試用戶zhangsan,lisi

groupadd mailusers #添加用戶郵箱測試
useradd -g mailusers -s /sbin/nologin zhangsan #添加zhangsan 用戶
useradd -g mailusers -s /sbin/nologin lisi #添加lisi用戶
passwd zhangsan #設置zhangsan密碼
passwd lisi #設置lisi密碼

知識點講解:

useradd -g mailusers -s /sbin/nologin zhangsan 是添加zhangsan用戶加入組裏,不登錄linux系統
而useradd zhangsan 是可以登錄linux系統的
2者創建的用戶都可以登錄郵箱,不同創建方式的,也可以相互發送郵件,郵箱方面不受影響!

3.安裝Foxmail

1.官網下載地址:https://www.foxmail.com/ ,選擇windows版本或mac版本。

2.先設置本地電腦dns服務器地址
Shell 腳本自動安裝公司內部郵箱服務器--Postfix

備註:192.168.0.1 是電腦是本地路由網關地址,爲了連接外網
192.168.0.200 是dns服務器地址,爲了解析mail.benet.com 域名

3.安裝好Foxmail後運行,設置賬號,點擊手動設置

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

4.設置郵箱賬號,密碼,pop服務器,SMTP服務器,其他默認即可,點擊創建,完成

Shell 腳本自動安裝公司內部郵箱服務器--Postfix
Shell 腳本自動安裝公司內部郵箱服務器--Postfix

5.在zhangsan賬戶下右擊設置,創建lisi用戶,設置同zhangsan用戶

Shell 腳本自動安裝公司內部郵箱服務器--Postfix
Shell 腳本自動安裝公司內部郵箱服務器--Postfix

6.zhangsan用戶發信給lisi用戶

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

7.lisi收信查看

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

8.lisi回覆測試

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

9.zhangsan收信測試

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

坑點講解

以上操作教程只用於虛擬機演示,做實驗部分。若是真實公司搭建內網郵箱,是不會這麼順利的,會出現很多問題

問題一:有的電腦郵箱順利登陸,但有的電腦郵箱登陸失敗

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

問題二:一開始郵件收發都正常,過一段時間後,發現郵件發送失敗或收件失敗。

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

原因分析:出現這樣問題的原因可能是因爲域名解析故障或自己搭建的dns服務器解析不穩定

解決方法:

方法1.添加本地hosts文件解析

Shell 腳本自動安裝公司內部郵箱服務器--Postfix
Shell 腳本自動安裝公司內部郵箱服務器--Postfix

方法2.設置服務器時填寫IP地址代替域名

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

經過多次測試,我發現了最方便,最穩定的方案就是以下4步:

1.搭建postfix服務時直接不用dns服務

2.在本地也不填寫dns服務器地址,自動獲取即可

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

3.添加本地hosts文件解析(見方法1圖)

4.設置服務器時填寫IP地址代替域名(所有用戶必做步驟)

Shell 腳本自動安裝公司內部郵箱服務器--Postfix

備註:1,2,3步是選做步驟,4是必做步驟,爲了保險,4步都操作一下最好!

其他坑點:
Mac系統登錄失敗,這是由於mac版本foxmail和Windows版本賬戶設置不一樣

解決方法:填寫如下圖賬戶信息
Shell 腳本自動安裝公司內部郵箱服務器--Postfix

總結:

1.公司局域網搭建郵箱服務器推薦使用postfix
2.腳本文件不建議直接複製,可下載我的資料 https://down.51cto.com/data/2464053
3.文中搭建的郵箱服務器即爲公司內部服務器,只能在內網中使用,若要外網使用,需要申請外網域名。

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