【Linux】CentOS 7搭建Postfix邮件服务器

先说明一下,此文章是参考别的大神写的文章,修改和整理出来的。

本来作为自己的笔记,最后想了一下,还是分享给大家。

一、实验环境

  1. 硬件环境:
    Linux服务器一台,IP地址:192.168.17.200;
    WIN10客户端一台,拥有outlook 2010或foxmail电脑端,测试用,与服务器在同一局域网内。
  2. Linux系统环境,如下图:

二、实验内容

  1. 搭建DNS服务器
  2. 搭建postfix服务器及普通发信
  3. 普通收信
  4. 认证收信
  5. squirrelmail收发邮件(搭建网页收发邮件)
  6. 邮件群发功能配置
  7. 邮件发送容量大小配置
  8. 通过配置用户磁盘配额实现限制用户邮箱空间

三、实验步骤

准备工作:
[root@localhost ~]# systemctl stop firewalld      //关闭防火墙
[root@localhost ~]# setenforce 0     //关闭selinux
第一部分:搭建DNS服务器
[root@localhost ~]# yum install bind -y     //安装DNS服务
------------以下编辑主配置文件--------------
[root@localhost ~]# vim /etc/named.conf 
修改如下内容:
 
保存退出
[root@localhost ~]# named-checkconf //检查语法错误
注意:如有错误提示,详细解读错误提示,按提示修改配置文件;若没有任何提示,则表示没有语法错误。
------------以下编辑区域配置文件--------------------
[root@localhost ~]# vi /etc/named.rfc1912.zones
文件末尾加入以下内容:

正向区域配置:

ldxy.orz为服务器域名

反向区域配置:


保存退出
[root@localhost ~]# named-checkconf //检查语法错误
---------------以下编辑区域数据配置文件-------------------
[root@localhost ~]# cd /var/named
[root@localhost named]# cp -p named.localhost ldxy.orz.zone
//创建正向区域数据配置文件(注意,由于我是复制另一个样式文件,复制文件时必须加“-P”,表示复制过来的时候文件权限保持不变)


[root@localhost named]# vim ldxy.orz.zone     //编辑正向区域数据配置文件
 
(此处注意语法格式,不要漏掉“.”)
保存退出
//创建反向区域数据配置文件
[root@localhost named]# cp -p named.localhost 17.168.192.zone.arpa


[root@localhost named]# vi 17.168.192.zone.arpa       //编辑反向区域数据配置文件
 
保存退出
[root@localhost named]# named-checkconf //检查语法错误
-------------启动服务,验证--------------
[root@localhost named]# systemctl start named //启动DNS服务


[root@localhost named]# systemctl enable named //设置开机启动
[root@localhost named]# vim /etc/resolv.conf //设置服务器域名
 
保存退出
[root@localhost named]# nslookup mail.aa.com //解析验证
成功如下图:

第二部分:搭建postfix并配置基本发信功能
[root@localhost ~]# postconf -a   //验证是否支持cyrus dovecot功能
 
(若postfix已安装好,则会支持这两个功能,若不支持,表示postfix未安装好;CentOS 7开始默认系统自带postfix。)
[root@localhost ~]# systemctl start postfix 启动服务
------------编辑主配置文件--------------
[root@localhost ~]# vim /etc/postfix/main.cf 
编辑以下内容:
 //邮件服务器的主机名
 //邮件域
 //往外发邮件的邮件域
 
//监听的网卡 (注意,两个地址之间有空格)
 
//服务的对象
 //邮件存放的目录
保存退出
[root@localhost ~]# postfix check //检查语法错误(与named-check用法一样)
[root@localhost ~]# systemctl restart postfix //重启服务
[root@localhost ~]# postconf –n //查看postfix的非默认并已生效配置
-------------增加邮件测试帐号--------------
[root@localhost ~]# groupadd mailusers //创建组给测试帐号
[root@localhost ~]# useradd -g mailusers -s /sbin/nologin user1
//创建user1帐户只属于mailusers组并不能登录系统,用于测试邮件
[root@localhost ~]# passwd user1   //创建user1密码
[root@localhost ~]# useradd -g mailusers -s /sbin/nologin user2
[root@localhost ~]# passwd user2
--------------连接服务器的25端口进行简单发信测试-----------

[root@localhost ~]# yum -y install telnet     //若提示bash: telnet:  未找到命令,则需要安装telnet
[root@localhost ~]# telnet mail.ldxy.orz 25
//连接成功,开始写信
helo mail.ldxy.orz //声明本机的主机
mail from:user1@ldxy.orz //声明发件人地址
rcpt to:user2@ldxy.orz //声明收件人地址
data //写正文
Hello! I am user1
.  //这个点为正文结束标记
quit // 退出
如图所示:
 
第三部分:收信验证
方法一:使用root查看tom用户是否收到测试邮件
[root@localhost ~]# cat /home/user2/Maildir/new/1560500244.Vfd02I1000071M977501.localhost.localdomain
成功显示:

方法二:搭建dovecot提供收信服务
--------------安装dovecot软件----------------
[root@localhost ~]# yum install -y dovecot 
---------------编辑配置文件--------------
[root@localhost ~]# vi /etc/dovecot/dovecot.conf
修改以下三行:
 
 
 
添加以下三行:
  
保存退出
----------------启动服务--------------
[root@localhost ~]# systemctl start dovecot 
[root@localhost ~]# netstat -anpt | grep dovecot
//110,143端口需要监听

---------------收信验证---------------
[root@localhost ~]# telnet mail.ldxy.orz 110
user user2 //收件人登录
pass user2 //邮箱密码
list //列表查看邮件
retr 4 //读取编号为4的邮件
quit //退出邮箱
如图所示:
 

//验证成功
方法三:用win10客户端outlook2010收信验证
打开
 
打开左上角,“文件”
 
点击添加帐户
 
手动设置,下一步
 
选择POP或IMAP,下一步
 
配置user2的邮箱信息,点击下一步

连接服务器成功
 
完成

点开左侧,user2帐户已成功添加
 
点开“收件箱”,user2已成功接收到user1发送过来的邮件
 
//验证成功
注意:如果收信慢,可点击右上角接收

第四部分:发信认证配置

  1. 编辑认证配置文件
    ---------安装cyrus-sasl软件-------------
    [root@localhost ~]# yum install -y cyrus-sasl //注意,此处加上“”,包含安装该软件所包含插件
    ----------编辑配置文件---------------
    [root@localhost ~]# vi /etc/sasl2/smtpd.conf

     //配置认证方式
    保存退出
    [root@localhost ~]# vi /etc/sysconfig/saslauthd
     //本地用户认证
    保存退出
    -------------启动服务--------------
    [root@localhost ~]# systemctl start saslauthd 
    [root@localhost ~]# systemctl enable saslauthd
  2. 编辑postfix主配置文件
    [root@localhost ~]# vi /etc/postfix/main.cf
    添加以下内容:
    smtpd_sasl_auth_enable = yes //开启认证
    smtpd_sasl_security_options = noanonymous //不允许匿名发信
    mynetworks = 127.0.0.0/8 //允许的网段,如果增加本机所在网段就会出现允许不验证也能向外域发信
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination //允许本地域以及认证成功的发信,拒绝认证失败的发信
    如图:


    [root@localhost ~]# postfix check //检查语法错误
    [root@localhost ~]# systemctl restart postfix //重启postfix服务
  3. 测试普通发信验证

     
    //注意:由于abc@163.com未认证,所以拒绝访问,发送失败
  4. 将邮件用户名和密码生成密文
    [root@localhost ~]# printf "jack" | openssl base64 //帐户加密
    [root@localhost ~]# printf "123" | openssl base64 //密码加密

  5. 字符终端测试认证发信
    [root@localhost ~]# telnet mail.aa.com 25
    ehlo mail.aa.com //注意是ehlo不是helo
    auth login //认证登录
    amFjaw== //密文用户名
    MTIz //密文密码
    mail from:jack@aa.com
    rcpt to:aa@163.com
    data
    this is test 
    .
    quit
    //发送成功
  6. win7客户端用outlook2013测试认证发信
    更改帐户配置

     
    点开“其它设置”

    发送服务器,打√,使用与接收邮件服务器相同的设置
     
    下一步,成功
     
    新建电子邮件
     
    写信
     
    //查看jack是否接收到邮件
    Outlook添加jack帐户,与添加tom方法一样,其它设置中记得打√

    //验证成功

第五部分:配置squirrelmail收发邮件(小松鼠网页浏览邮箱)
---------------搭建LAMP环境-------------

  1. 安装httpd,mariadb,php服务
    yum install -y \
    httpd \ //Apache服务
    mariadb-server mariadb \ //Mysql服务
    php \ //PHP服务
    php-mysql \ //PHP关联数据库
    php-gd \
    libjpeg* \
    php-ldap \
    php-odbc \
    php-pear \
    php-xml \
    php-xmlrpc \
    php-mhash
  2. 编辑Apache主配置文件
    [root@localhost ~]# vi /etc/httpd/conf/httpd.conf

     //域名
     
    保存退出
  3. 编辑PHP主配置文件
    [root@localhost ~]# vi /etc/php.ini 

     
    保存退出
  4. 启动服务
    [root@localhost ~]# systemctl start httpd //启动Apache服务
    [root@localhost ~]# systemctl enable httpd //设置开机启动
    [root@localhost ~]# systemctl start mariadb //启动mysql数据库服务
    [root@localhost ~]# systemctl enable mariadb //设置开机启动
    [root@localhost ~]# netstat -anpt | grep 80 //查看httpd端口状态


    [root@localhost ~]# netstat -anpt | grep 3306 //查看mysql端口状态
  5. 网页测试 http://192.168.80.10/

  6. 编辑mysql数据库安全配置
    [root@localhost ~]# mysql_secure_installation

     
    //使用本地管理员root进入
     
    //创建数据库管理员密码,回车,输入两遍密码(123)
     
    //移除匿名用户
     
    //不允许管理员远程登录,选择否
     
    //删除测试数据库
     
    //重新载入权限配置
  7. 编辑php测试文件
    [root@localhost ~]# vi /var/www/html/index.php
    创建php默认配置文件,并添加以下内容:

     
    保存退出
    //网页测试 http://192.168.80.10/
     
    //测试成功
  8. 编辑mysql数据库
    //进入数据库,建立授权帐号
    [root@localhost ~]# mysql -u root –p
    输入数据库密码(123),回车进入,输入以下内容


    //测试数据库工作是否正常
    [root@localhost ~]# vi /var/www/html/index.php
    将其它内容删除,并输入以下内容:
     
    保存退出
    刷新网页
     
    //测试成功
    ----------------搭建小松鼠网页邮箱--------------
  9. 准备工作
    SquirrelMail - Webmail for Nuts!
    到该网站去下载压缩包到Linux服务器
    安装包:

     
    汉化包: 
  10. 解压
    [root@localhost ~]# tar xzvf squirrelmail-webmail-1.4.22.tar.gz
    //解压安装包,生成一个安装文件
    [root@localhost ~]# tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22
    //解压汉化包到安装文件里面


    [root@localhost ~]# cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail
    //复制该文件到http默认目录下
    [root@localhost ~]# cd /var/www/html/mail/
  11. 创建小松鼠网页默认配置文件
    [root@localhost mail]# mkdir attach
    [root@localhost mail]# chown -R apache:apache attach/ data/
    [root@localhost mail]# cd config
    [root@localhost config]# cp config_default.php config.php

  12. 编辑配置文件
    [root@localhost config]# vi config.php
    修改以下内容:
    $domain = 'aa.com'; //域名
    $imap_server_type = 'dovecot'; //服务类型
    $data_dir = '/var/www/html/mail/data'; //数据目录
    $attachment_dir = '/var/www/html/mail/attach/'; //附件目录
    $squirrelmail_default_language = 'zh_CN'; //默认语言环境
    $default_charset = 'zh_CN.UTF-8'; //默认字符编码
    保存退出
    //注意特殊字符,“$”与“;”不要漏掉
  13. 网页验证测试 http://192.168.80.10/mail


    输入jack或者tom帐户密码登录

    //验证成功

第六部分:邮件群发配置

  1. 设置邮件组
    [root@localhost ~]# vi /etc/aliases
    添加以下内容:

     
    //将jack,tom加入到student组里面
    保存退出
    [root@localhost ~]# newaliases //生成新的hash数据库文件
  2. 重启postfix服务
    [root@localhost ~]# systemctl restart postfix /重启postfix服务
  3. 添加lucy邮件测试用户
    [root@localhost ~]# useradd -g mailusers -s /sbin/nologin lucy
    [root@localhost ~]# passwd lucy
  4. 登录outlook2013,登录lucy帐户,给student组群发邮件
    //在outlook中添加lucy帐户
    //用lucy帐户发信

//查看tom与jack帐户收信
Jack成功收信


tom成功收信

//验证成功

第七部分:发送邮件容量大小限制
------------编辑配置文件--------------
[root@localhost ~]# vi /etc/postfix/main.cf //编辑postfix配置文件
最后添加以下内容:

 
//限制发送的邮件大小最大为5MB
保存退出
[root@localhost ~]# systemctl restart postfix //重启postfix服务
--------------------用outlook验证----------------------
//发送一个超过5M的文件
 

 

//发送失败,验证成功

第八部分:通过配置用户磁盘配额实现限制用户邮箱空间
-----------开启磁盘配额------------
[root@localhost ~]# df –hT //查看邮件目录挂载信息


[root@localhost ~]# vi /etc/fstab 
//修改配置文件,实现开机自动挂载
修改以下内容:

保存退出
[root@localhost ~]# mount //查看sda2磁盘配额开启状态

[root@localhost ~]# umount /home/ //卸载home目录
[root@localhost ~]# mount –a //重新挂载
[root@localhost ~]# mount //查看挂载状态

//挂载成功
[root@localhost ~]# quotaon -p /home/ 
//确认home目录磁盘配额已开启
 
//由于sda2分区格式为xfs,默认自动开启磁盘配额功能
--------------为jack用户配置磁盘配额限制---------------
[root@localhost ~]# edquota -u jack 

//配置jack用户邮箱大小为最大10M
-------------测试,验证--------------
//将邮件发送大小限制去掉
[root@localhost ~]# vi /etc/postfix/main.cf
删除以下内容:
 
保存退出
[root@localhost ~]# systemctl restart postfix //重启服务
//用outlook发送邮件给jack


//发出第三封邮件之后,邮箱提示,硬盘配额溢出
[root@localhost ~]# cd /home/jack/Maildir/cur/ 
//进入jack用户存放邮件的目录查看接收邮件的大小
 
//系统默认接收到两封邮件后容量已达7.1M,无法再接收第三封3M的邮件,磁盘配额生效,测试成功!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/491950.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【人脸朝向识别与分类预测】基于PNN神经网络

课题名称:基于PNN神经网络的人脸朝向识别分类 版本日期:2024-02-20 运行方式:直接运行PNN0503.m文件 代码获取方式:私信博主或 QQ:491052175 模型描述: 采集到一组人脸朝向不同角度时的图像,图像来自不…

ThreadPoolExecutor原理详情讲解

一、简介 ThreadPoolExecutor是Java中的一个类,它实现了ExecutorService接口,用于创建一个线程池。线程池是一种线程使用模式,它维护着一组线程,等待监督管理者分配可以并发执行的任务。ThreadPoolExecutor的主要目标是减少在创建…

Animated Trees Package

此软件包包含30个高质量的全动画树木。所有模型都是用Blender 3D制作的。 要安装URP或HDRP材质,请选择主文件夹中的“URP Materials”或“HDRP Materials”包文件,并导入所有文件。 下载:​​Unity资源商店链接资源下载链接 提取码:3gng 效果图:

正大国际:高频交易可以做吗?

第一种:抄单交易 这种做法也可以称之无脑型抄单,就是一旦进场之后,几秒钟内,不管是盈利还是亏损就要立即出来。交易时间一般是2-5秒,每天可能要做上几百次,或者上千次来回交易。这种做法对品种有要求&…

纯国产轻量化数字孪生:智慧城市、智慧工厂、智慧校园、智慧社区。。。

AMRT 3D数字孪生引擎介绍 AMRT3D引擎是一款融合了眸瑞科技的AMRT格式与轻量化处理技术为基础,以降本增效为目标,支持多端发布的一站式纯国产自研的CS架构项目开发引擎。 引擎包括场景搭建、UI拼搭、零代码交互事件、光影特效组件、GIS/BIM组件、实时数据…

腾轩科技传媒分享创建舞蹈家百度百科词条流程

近年来,随着互联网的不断发展,人们获取信息的方式也逐渐多样化,其中百度百科作为一个综合性的知识平台,为人们提供了一个方便快捷的途径来获取各种知识和信息。在百度百科上,每个人都有可能成为一个有影响力的人&#…

matlab simulink永磁同步电机pid控制

1、内容简介 略 53-可以交流、咨询、答疑 2、内容说明 略 摘 要 19世纪90年代,美国西屋电气公司研制出了世界上第一台交流同步电机。随着科学技术的迅猛发展和生产工艺的持续进步,在20世纪50年代出现了永磁同步电机。它以永磁体代替电励磁绕组&#…

解决vulhub漏洞环境下载慢卡死问题即解决docker-valhub漏洞环境下载慢的问题

解决vulhub环境下载慢/卡 当前环境为:ubuntu20 1.在 cd /etc/docker/目录下创建或修改daemon.json文件 sudo touch daemon.json编辑daemon.json文件 sudo vim daemon.json2.填写阿里云镜像地址: { "registry-mirrors":["https://6kx…

opencv图像处理

// 提取路口轮廓集合&#xff08;每个路口的轮廓为一系列点集&#xff09; std::vector<std::vector<cv::Point>> node_contours; std::vector<cv::Vec4i> node_hierarchy;保存轮廓的层次关系// 只提取外轮廓 轮廓近似方法&#xff1a;水平垂直对角线只保留端…

如何移除禁用WordPress默认小工具(附WordPress默认小工具名称)

WordPress 自带的小工具非常多&#xff0c;但是我们用到的也就那么几种&#xff0c;甚至一种都不会用到&#xff0c;所以很有必要注销&#xff08;去除&#xff09;掉一些不用的小工具。实现的方法也很简单&#xff0c;只需将以下代码&#xff0c;根据自己的情况删除需要用的小…

GPU over IP/IB:趋动OrionX产品的创新之路

在数字化转型的浪潮中&#xff0c;GPU over IP/IB技术正成为数据中心和云计算领域的一股新兴力量。这种技术通过将物理GPU资源虚拟化&#xff0c;实现了跨网络的高效利用&#xff0c;为AI、机器学习、科学计算等高性能计算任务提供了前所未有的灵活性和扩展性。 本文将深入探讨…

时序预测 | Matlab实现基于GRNN广义回归神经网络的光伏功率预测模型

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 1.时序预测 | Matlab实现基于GRNN广义回归神经网络的光伏功率预测模型 2.单变量时间序列预测; 3.多指标评价,评价指标包括:R2、MAE、MBE等,代码质量极高; 4.excel数据,方便替换,运行环境2020及以上。 广义回…