当前位置: 首页 > news >正文

Postfix邮件系统

邮件服务器是一种用来负责电子邮件收发管理的设备。它比网络上的免费邮箱更安全和高效,因此一直是企业公司的必备设备。


本次实验是由DNS、postfix、dovecot服务共同组建成为邮件服务器

实验准备

  • linux虚拟机(Red Hat Enterprise 6.5)
  • 主机IP192.168.175.101

实验开始

搭建邮箱地址解析(DNS)服务

DNS服务如何搭建,我在之前的文章中有过介绍,本篇中就简单介绍。
rpm安装named软件

  1. 主配置文件中修改监听地址和允许解析的主机地址
    Postfix邮件系统
  2. 区域配置文件中,设置服务器名称及区域数据配置文件名称(配置在正向解析区域)
    Postfix邮件系统
  3. 复制模板,修改配置文件,文件复制时,需要注意的是要保留文件的属组、属主。(cp -p)
    Postfix邮件系统
  4. 指定DNS地址
    echo "nameserver 192.168.175.101" >> /etc/resolv.conf

    启动服务并测试解析结果

    service named start      //启动dns服务

    Postfix邮件系统

    搭建postfix服务

    rpm安装postfix软件
    修改配置文件//etc/postfix/main.cf

inet_interfaces = all                                                    //监听服务的IP地址
#inet_interfaces = localhost                                      //注释掉这一行
myhostname = mail.benet.com                                //邮件服务器主机名
mydomain = benet.com                                            //邮件域名
myorigin = $mydomain                                             //发件人地址邮件域名
mydestination = $mydomain, $myhostname         //收件人地址邮件域名
home_mailbox = Maildir/                                          //邮件存放位置

重启服务

service postfix restart           //重启postfix'服务

搭建dovecot服务

rpm安装软件

rpm -ivh /mnt/Packages/dovecot-2.0.9-7.el6.x86_64.rpm

修改配置文件/etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp   //开启协议

login_trusted_networks = 192.168.175.0/24  //指定服务器所在网段

修改配置文件/etc/dovecot/conf.d/10-mail.conf,开启邮箱位置及格式

mail_location = maildir:~/Maildir   //去掉行首#即可

收发邮件测试

发送邮件

Postfix邮件系统

接收邮件

Postfix邮件系统

shell脚本快速搭建邮箱服务器

Postfix邮件系统
系统不同脚本编写也不尽相同,仅供参考


#!/bin/bash
#提供邮件服务
#搭建DNS服务
#安装软件
rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
#配置主配置文件
sed -i 's/127.0.0.1/any/' /etc/named.conf
sed -i 's/localhost;/any;/' /etc/named.conf
echo "主配置文件修改成功"
#配置区域配置文件
sed -i '24c zone "benet.com" IN {\ntype master;\nfile "benet.com.zone";\nallow-update { none; };\n};' /etc/named.rfc1912.zones
echo "区域配置文件修改成功"
#配置区域数据配置文件
cp -p /var/named/named.localhost /var/named/benet.com.zone
sed -i 's/@ rname.invalid./benet.com. admin.benet.com./' /var/named/benet.com.zone
sed -i 's/127.0.0.1/192.168.175.101/' /var/named/benet.com.zone
sed -i '10c IN MX 5 benet.com.\nmail IN A 192.168.175.101' /var/named/benet.com.zone
echo "区域数据配置文件修改成功"
#关闭防火墙及selinux防火墙
service iptables stop
setenforce 0
#启动服务
service named start
echo "nameserver 192.168.175.101" >> /etc/resolv.conf
host mail.benet.com
#修改postfix配置文件
sed -i 's/#inet_interfaces = all/inet_interfaces = all/' /etc/postfix/main.cf
sed -i 's/inet_interfaces = localhost/#inet_interfaces = localhost/' /etc/postfix/main.cf
sed -i 's/#myhostname = host.domain.tld/myhostname = mail.benet.com/' /etc/postfix/main.cf
sed -i 's/#mydomain = domain.tld/mydomain = benet.com/' /etc/postfix/main.cf
sed -i 's/#myorigin = $myhostname/myorigin = $mydomain/' /etc/postfix/main.cf
sed -i 's/mydestination = $myhostname, localhost.$mydomain, localhost/mydestination = $mydomain, $myhostname/' /etc/postfix/main.cf
sed -i 's/#home_mailbox = Maildir/home_mailbox = Maildir/' /etc/postfix/main.cf
echo "main.cf配置文件修改完成"
service postfix restart
echo "服务启动完成"
#安装dovecot软件
rpm -ivh /mnt/Packages/dovecot-2.0.9-7.el6.x86_64.rpm
#修改dovecot.conf配置文件
sed -i "20c protocols = imap pop3 lmtp" /etc/dovecot/dovecot.conf
sed -i "38c login_trusted_networks = 192.168.175.0/24" /etc/dovecot/dovecot.conf
echo "dovecot.conf配置文件修改完成"
sed -i "24c mail_location = maildir:~/Maildir" /etc/dovecot/conf.d/10-mail.conf
echo "10-mail.conf修改完成"
service dovecot start
#创建测试用账号
groupadd mailusers
useradd -g mailusers -s /sbin/nologin zhangsan
echo "123123" | passwd --stdin zhangsan
useradd -g mailusers -s /sbin/nologin lisi
echo "123123" | passwd --stdin lisi
echo "测试账号zhangsan,lisi创建完成"

转载于:https://blog.51cto.com/13643643/2121461

相关文章:

  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • MSSQL最佳实践:如何监控备份还原进度?
  • 项目依赖和生成顺序造成的问题
  • MySQL修改root密码的方法
  • 多线程事务回滚
  • 5.30 Tree Traversal + Tree manipulation
  • 网页视频加速播放
  • 阿里云新一代关系型数据库 PolarDB 剖析
  • 函数模板(四十七)
  • Springboot 整合 dubbo 的一些坑
  • 10 个 Python 初学者必知编码小技巧
  • CentOS7下安装NVIDIA独立显卡驱动出现X service error问题解决方法
  • python爬虫练习--爬取猫眼热映口碑榜
  • Python字符串capitalize center 方法
  • 实验四 shell编程2
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • C++入门教程(10):for 语句
  • ES6--对象的扩展
  • HTTP中的ETag在移动客户端的应用
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JS字符串转数字方法总结
  • Spring Boot MyBatis配置多种数据库
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Webpack 4 学习01(基础配置)
  • XForms - 更强大的Form
  • 阿里研究院入选中国企业智库系统影响力榜
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 包装类对象
  • 分享一份非常强势的Android面试题
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 那些年我们用过的显示性能指标
  • 使用SAX解析XML
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 思否第一天
  • 问题之ssh中Host key verification failed的解决
  • 一道面试题引发的“血案”
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​TypeScript都不会用,也敢说会前端?
  • #{} 和 ${}区别
  • #《AI中文版》V3 第 1 章 概述
  • #NOIP 2014# day.1 T2 联合权值
  • #前后端分离# 头条发布系统
  • (分布式缓存)Redis哨兵
  • (十)c52学习之旅-定时器实验
  • (算法设计与分析)第一章算法概述-习题
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转载)OpenStack Hacker养成指南
  • ***测试-HTTP方法
  • . NET自动找可写目录
  • ./configure、make、make install 命令
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记