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.查看服务端口

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服务器地址

备注:192.168.0.1 是电脑是本地路由网关地址,为了连接外网
192.168.0.200 是dns服务器地址,为了解析mail.benet.com 域名

3.安装好Foxmail后运行,设置账号,点击手动设置

4.设置邮箱账号,密码,pop服务器,SMTP服务器,其他默认即可,点击创建,完成


5.在zhangsan账户下右击设置,创建lisi用户,设置同zhangsan用户


6.zhangsan用户发信给lisi用户

7.lisi收信查看

8.lisi回复测试

9.zhangsan收信测试

坑点讲解

以上操作教程只用于虚拟机演示,做实验部分。若是真实公司搭建内网邮箱,是不会这么顺利的,会出现很多问题

问题一:有的电脑邮箱顺利登陆,但有的电脑邮箱登陆失败

问题二:一开始邮件收发都正常,过一段时间后,发现邮件发送失败或收件失败。

原因分析:出现这样问题的原因可能是因为域名解析故障或自己搭建的dns服务器解析不稳定

解决方法:

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


方法2.设置服务器时填写IP地址代替域名

经过多次测试,我发现了最方便,最稳定的方案就是以下4步:

1.搭建postfix服务时直接不用dns服务

2.在本地也不填写dns服务器地址,自动获取即可

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

4.设置服务器时填写IP地址代替域名(所有用户必做步骤)

备注:1,2,3步是选做步骤,4是必做步骤,为了保险,4步都操作一下最好!

其他坑点:
Mac系统登录失败,这是由于mac版本foxmail和Windows版本账户设置不一样

解决方法:填写如下图账户信息

总结:

1.公司局域网搭建邮箱服务器推荐使用postfix
2.脚本文件不建议直接复制,可下载我的资料
3.文中搭建的邮箱服务器即为公司内部服务器,只能在内网中使用,若要外网使用,需要申请外网域名。

原文地址:https://blog.51cto.com/13760351/2426593

时间: 2024-10-10 17:04:11

Shell 脚本自动安装公司内部邮箱服务器--Postfix的相关文章

Shell 脚本自动安装cobbler(改进+填坑)

前言: 在这一篇博客写完后,虽然那个shell脚本可以成功安装cobbler服务,但是2个脚本毕竟不方便,而且在写脚本的过程中,出现的好多问题都没有找到原因.但我没有放弃,在我的不断摸索中,终于找到了原因和解决办法,现在分享给大家,希望对大家能有所帮助! 脚本环境 1.linux centos 7 系统2.系统可连接外网3.网络模式:NAT模式 实验步骤 1.上传cobbler脚本到Linux系统/root目录下 chmod +x *.sh 添加执行权限 2.脚本cobbler.sh详解 #!/

shell 脚本自动安装jdk-6u34-linux-x64-rpm.bin 跳过回车自动安装

上代码: #!/bin/bash #Engine server install #Write by guojr #Set Engine server dir jdk=jdk-6u34-linux-x64-rpm.bin chmod o+x $jdk && echo -e "\n" | ./$jdk; ( cat <<EOF         #set java environment         JAVA_HOME=/usr/java/jdk1.6.0_3

shell脚本自动安装nginx

写一脚本,实现对nginx的自动化下载,安装,启动,停止 #!/bin/sh ###nginx install shell SOFT_PATH=/data/softNGINX_FILE=nginx-1.14.2.tar.gzDOWN_PATH=http://nginx.org/download/ if [ $# -ne 1 ];then echo "USAAGE:$0{download or start or install or stop}" exit 0 fi if [ $UID

使用shell脚本自动安装Apache2.4.35

安装环境Centos7,联网进行安装.脚本如下: #!/bin/bash[ $(id -u) != "0" ] && echo "error,not root user" && exit 1export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/bin:/usr/sbinwhich httpdif [ $? -eq 0 ];thenyum remove 'yum list

shell脚本自动编译安装Apache

shell脚本自动安装Apache,适用于CentOS #!/bin/bash ##################################################### #Create date 2018.4.10 #Author: wansheng #Function: shell script install apache2.4 #Email: [email protected]  #System: Linux CentOS-7 ######################

PXE项目实战,通过编写脚本自动安装系统时批量部署服务器所需要的所有服务

由于上一篇是有关PXE的基础配置,所以有些过程省略,有不便的还请谅解. 案例需求:    1. 在局域网 192.168.1.0/24 内部署一台 PXE 装机服务器(CentOS 6.5系统)        操作系统:CentOS 6.5      ==> 关闭 iptables 防火墙.关闭SELinux机制,进图形桌面        网卡连接:VMnet1    ==> 关闭 NetworkManager 服务 2. 提供带图片背景.可选择的PXE启动菜单,支持为客户机裸机装配64位的

Shell脚本自动部署(编译)LAMP平台

Shell脚本自动部署(编译)LAMP平台 LAMP是当下非常流行的一套Web架构,我们可以在GNU/Linux下通过其他人打包的程序包来进行安装; 但是在生产环境中,很多时候都需要我们自己定制安装AMP,编译安装LAMP有以下几个优点 根据生产环境灵活定制程序 优化编译参数,提高性能 解决不必要的软件依赖 友情提示:对编译安装有疑问的朋友, 查看我以前写的博客:教你使用rpm.yum.编译等方式安装软件 点击此处获得更好的阅读体验 为什么要用脚本进行部署? 在很多情况下部署LAMP平台并不止一

用shell脚本自动化安装hadoop

一.概述 1.1 简介 本文主要介绍怎样用 shell 实现 hadoop 的自动化安装.关于手动安装 hadoop 的步骤,可以查看以下链接: http://www.cnblogs.com/13bear/articles/3700842.html 1.2 环境 OS: CentOS release 6.4 (Final) Hadoop:Apache hadoop V1.2.1 1.3 脚本下载 http://pan.baidu.com/s/1eQHyfZk 二.脚本综述 2.1 脚本目录列表

Shell脚本-----自动备份Mysql数据库

脚本的整体思路 1.定义需要的变量 2.利用for循环备份需要备份的库,并以库名-当天日期.sql命名,并记录相关日志 3.建立备份当天的日期的目录,向备份的Sql文件移动到该目录 4.压缩打包该目录,以节省空间,打包成功后删除该目录 5.备份目录只备份七天的数据库,第八天删除第一天的备份,目录只会存在连续七天的备份文件 6.查找备份目录下的.log日志文件,超过七天的删除 #!/bin/bash mysql_bin=/usr/local/tdoa/mysql/bin/mysqldump use