搭建邮件服务器概述

一、电子邮件应用解析

 

标准邮件服务器(qq邮箱):

    1)提供电子邮箱(lvbu@qq.com)及存储空间

    2)为客户端向外发送邮件给其他邮箱(diaochan@163.com)

    3)接收/投递其他邮箱用户发给本邮箱用户的邮件

 

#### 关于postfix邮件服务

软件包:postfix

协议和端口:SMTP协议(TCP 25端口)

配置文件:/etc/postfix/main.cf

配置工具:postconf、vim

系统服务:postfix

日志文件:/var/log/maillog

 

#### 配置工具postconf、语法检查

[root@servera ~]# postconf         //列出main.cf文件中的有效配置参数

[root@servera ~]# postconf  -d     //列出默认的配置参数

[root@servera ~]# postconf  -n     //只列出非默认的(修改过的)配置参数

[root@servera ~]# postconf   -e  '关键词 = 值'       //修改配置文件,设置  关键词 = 值

[root@servera ~]# postfix  check  //检查配置是否有错

 

#### mail.cf常见配置

inet_interfaces = all       //在本机哪些接口(all、localhost、loopback-only等)提供发信服务

mydomain = lab.example.com                //本服务器管辖的主要邮件域

mynetworks = 127.0.0.1/32 [::1]/128    //本机网络范围

myorigin = $myhostname      //发件域,即从本机向外发邮件时,发件人地址@后面的部分显示啥

mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost    //投递域,对于收件人地址@后面是指定后缀的,会投递到本地用户的邮箱

 

 

#### 邮件服务器的DNS解析环境

例如:将servera.lab.example.com作为lab.example.com域的邮件服务器

1)修改区域的地址库文件

[root@servera ~]# vim  /var/named/lab.example.com.zone

.. ..

@       NS      dns.lab.example.com.

       MX 10   servera.lab.example.com.       //设置MX邮件服务器记录

dns     A       172.25.250.10

servera A       172.25.250.10             //为邮件服务器提供正确的IP地址记录

 

[root@servera ~]# systemctl  restart  named  //重启域名服务

 

2)配置客户机使用此DNS服务器

[root@servera ~]# vim  /etc/resolv.conf       //临时使用可直接修改此文件

# Generated by NetworkManager

search lab.example.com example.com

nameserver 172.25.250.10

 

3)测试结果

[root@servera ~]# host  -t  mx  lab.example.com      //查询MX类型的解析记录

lab.example.com mail is handled by 10 servera.lab.example.com.

 

 

#### 将servera配置为标准邮件服务器

    !!!! 监听地址为 all,允许为其他客户机发送邮件

    !!!! 提供本地邮件用户zhsan,对应邮箱为zhsan@servera.lab.example.com

    !!!! 负责接收/投递发往@servera.lab.example.com邮件域的邮件

1)装包

[root@servera ~]# dnf  -y  install  postfix

 

2)调整main.cf配置文件

[root@servera ~]# cp  /etc/postfix/main.cf{,.bak}

[root@servera ~]# postconf  -e  'inet_interfaces = all'        //在所有接口上提供发信服务

[root@servera ~]# postconf  -e  'mydomain = lab.example.com'       //设置邮件域

[root@servera ~]# postconf  -e  'mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost'    //指定投递域

[root@servera ~]# postfix  check       //确认配置无误

[root@servera ~]#

 

3)启动postfix服务

[root@servera ~]# firewall-cmd  --permanent  --add-service=smtp

[root@servera ~]# firewall-cmd  --reload

[root@servera ~]# systemctl  enable  postfix  --now

 

4)发邮件、收邮件测试

[root@servera ~]# dnf  -y  install  mailx        //安装收发信工具

[root@servera ~]# useradd  zhsan  //为本机添加一个名为zhsan的邮箱账号

[root@servera ~]# echo "AAAA"  |  mail  -s  "SMTP Test"  zhsan     //给本机用户zhsan发一封测试邮件

[root@servera ~]# mail  -u  zhsan      //收取用户zhsan的邮件

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/mail/zhsan": 1 message 1 new

>N  1 root                  Wed Sep  8 14:45  18/625   "SMTP Test"

& 1    //阅读第1封邮件

Message  1:

From root@servera.lab.example.com  Wed Sep  8 14:45:06 2021

.. ..

To: zhsan@servera.lab.example.com

Subject: SMTP Test

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

From: root <root@servera.lab.example.com>

Status: R

 

AAAA

& q        //退出mail工具

[root@servera ~]#

 

 

 

二、配置Postfix邮件服务-nullclient

 

空客户邮件服务器(机房内网): —— nullclient 只发不收

    1)不提供电子邮箱

    2)为客户端向外发送邮件给其他邮箱(diaochan@163.com)

    3)不接收/投递其他邮箱用户发给本服务器的邮件

 

    属性配置:有一台后端标准邮件服务器、发件来源

 

    例如:旅游景点(海南三亚)代寄礼品(10个椰子)的代办点

 

#### 空客户邮件服务器应用场景

假设运维工程师的邮箱是 stu@163.com、CTO主管boss@qq.com

存放在IDC数据中心的服务器 A,向外发送报警邮件:

    收件人地址:stu@163.com,抄送给 boss@qq.com

    发件人地址:root@服务器A的IP地址

 

问题:

1)服务器A不方便接收邮件

2)就算服务器A能收到邮件,运维工程师不方便收取邮件

 

解决办法:伪装发件人来源(服务A的IP地址 ==》stu@163.com)

    收件人地址:stu@163.com,抄送给 boss@qq.com

    发件人地址:stu@163.com

 

#### 将serverb配置为空客户邮件服务器

    !!!! 监听地址为loopback-only,只为本机发送邮件

    !!!! 不提供本地邮件用户、也没有邮箱空间,不接收、不投递任何邮件

    !!!! 从本机发出的邮件自动relay给后端的标准邮件服务器servera.lab.example.com,并显示是从servera.lab.example.com发出去的

 

1)装包

[root@serverb ~]# dnf  -y  install  postfix

 

2)调整main.cf配置文件

[root@serverb ~]# cp  /etc/postfix/main.cf{,.bak}

[root@serverb ~]# postconf  -e  'inet_interfaces = loopback-only'         //指定仅提供本地邮件(仅回环)服务

[root@serverb ~]# postconf  -e  'myorigin = servera.lab.example.com'         //伪装外发邮件来源

[root@serverb ~]# postconf  -e  'mydestination = '      //指定无需在本地投递邮件

[root@serverb ~]# postconf  -e  'relayhost = [servera.lab.example.com]'      //指定需要中继到哪一台后端邮件服务器

[root@serverb ~]# postfix  check       //确认配置无误

[root@serverb ~]#

 

3)启动postfix服务

[root@serverb ~]# firewall-cmd  --permanent  --add-service=smtp

[root@serverb ~]# firewall-cmd  --reload

[root@serverb ~]# systemctl  enable  postfix  --now

 

4)发邮件、收邮件测试

[root@serverb ~]# dnf  -y  install  mailx        //安装收发信工具

[root@serverb ~]# id  zhsan        //本机并没有zhsan这个邮箱用户

id: ‘zhsan’: no such user

[root@serverb ~]# echo  "CCCC" | mail  -s  "nullclient Test"  zhsan   //给本机zhsan发一封测试邮件

[root@serverb ~]# mail  -u  zhsan         //不管本机是否有zhsan用户,本机的zhsan都不会收到这封邮件

"zhsan" is not a user of this system

 

—— 转去servera上,用户zhsan可以收到刚刚从serverb上发出的邮件

[root@servera ~]# mail  -u  zhsan         //收取用户zhsan的邮件

Heirloom Mail version 12.5 7/5/10.  Type ? for help.

"/var/mail/zhsan": 2 messages 1 new

    1 root                  Wed Sep  8 14:45  19/636   "SMTP Test"

>N  2 root                  Wed Sep  8 14:56  21/860   "nullclient Test"

& 2    //阅读第2封邮件

Message  2:

.. ..

To: zhsan@servera.lab.example.com

Subject: nullclient Test

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

From: root <root@servera.lab.example.com>  //显示是从servera发出的(实际是从serverb发出的)

Status: R

 

CCCC

& q        //退出mail工具

[root@servera ~]#

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

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

相关文章

day28-NFS

1.每日复盘与今日内容1.1复盘Rsync:本地模式、远程模式&#x1f35f;&#x1f35f;&#x1f35f;&#x1f35f;&#x1f35f;、远程守护模式&#x1f35f;&#x1f35f;&#x1f35f;&#x1f35f;&#x1f35f;安装、配置Rsync启动、测试服务备份案例1.2今日内容NFS优缺点NFS服…

二叉搜索树--通往高阶数据结构的基石

目录 前言&#xff1a; 1、二叉搜索树的概念 2、二叉搜索树性能分析 3、二叉搜索树的实现 BinarySelectTree.h test.cpp 4、key 和 key / value&#xff08; map 和 set 的铺垫 &#xff09; 前言&#xff1a; 又回到数据结构了&#xff0c;这次我们将要学习一些复杂的…

Profinet转Ethernet IP网关接入五轴车床上下料机械手控制系统的配置实例

本案例为西门子1200PLC借助PROFINET转EtherNet/IP网关与搬运机器人进行连接的配置案例。所需设备包括&#xff1a;西门子1200PLC、Profinet转EtherNet/IP网关以及发那科&#xff08;Fanuc&#xff09;机器人。开启在工业自动化控制领域广泛应用、功能强大且专业的西门子博图配置…

专题二_滑动窗口_长度最小的子数组

引入&#xff1a;滑动窗口首先&#xff0c;这是滑动窗口的第一道题&#xff0c;所以简短的说一下滑动窗口的思路&#xff1a;当我们题目要求找一个满足要求的区间的时候&#xff0c;且这个区间的left和right指针&#xff0c;都只需要同向移动的时候&#xff0c;就可以使用滑动窗…

解锁高效开发:AWS 前端 Web 与移动应用解决方案详解

告别繁杂的部署与运维&#xff0c;AWS 让前端开发者的精力真正聚焦于创造卓越用户体验。在当今快速迭代的数字环境中&#xff0c;Web 与移动应用已成为企业与用户交互的核心。然而&#xff0c;前端开发者常常面临诸多挑战&#xff1a;用户认证的复杂性、后端 API 的集成难题、跨…

北京JAVA基础面试30天打卡04

1. 单例模式的实现方式及线程安全 单例模式&#xff08;Singleton Pattern&#xff09;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。以下是常见的单例模式实现方式&#xff0c;以及如何保证线程安全&#xff1a; 单例模式的实现方式饿汉式&#xff08;Eager Init…

Redis 缓存三大核心问题:穿透、击穿与雪崩的深度解析

引言在现代互联网架构中&#xff0c;缓存是提升系统性能、降低数据库压力的核心手段之一。而 Redis 作为高性能的内存数据库&#xff0c;凭借其丰富的数据结构、灵活的配置选项以及高效的网络模型&#xff0c;已经成为缓存领域的首选工具。本文将从 Redis 的基本原理出发&#…

耘瞳科技国产化点云处理软件,开启智能化三维测量新时代

在现代工业制造领域&#xff0c;三维点云数据已成为推动生产效率提升、质量控制优化以及智能制造转型的关键技术之一。三维点云数据能够提供高精度的物体表面信息&#xff0c;广泛应用于制造零件的质量检测&#xff1b;通过点云数据与CAD模型的对比分析&#xff0c;可以快速检测…

RabbitMQ面试精讲 Day 8:死信队列与延迟队列实现

【RabbitMQ面试精讲 Day 8】死信队列与延迟队列实现 文章标签 RabbitMQ,消息队列,死信队列,延迟队列,面试技巧,分布式系统 文章简述 本文是"RabbitMQ面试精讲"系列第8天&#xff0c;深入讲解死信队列与延迟队列的实现原理与实战应用。文章详细解析死信队列的触发…

团结引擎 1.5.0 版本发布:Android App View 功能详解

核心亮点 原生安卓应用支持 2D & 3D 双形态呈现 编辑器全流程集成 灵活调控功能 多应用并行展示 智能座舱应用示例 快速入门指南 开发说明 功能支持 实验性功能 资源链接 团结引擎 1.5.0 版本已于 4 月 14 日正式上线。本次更新中&#xff0c;车机版引入了一项突…

基于SpringBoot的OA办公系统的设计与实现

文章目录前言详细视频演示具体实现截图后端框架SpringBoot持久层框架MyBaits成功系统案例&#xff1a;代码参考数据库源码获取前言 博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续输出高质量…

知识随记-----用 Qt 打造优雅的密码输入框:添加右侧眼睛图标切换显示

Qt 技巧&#xff1a;通过 QLineEdit 右侧眼睛图标实现密码可见性切换 文章目录Qt 技巧&#xff1a;通过 QLineEdit 右侧眼睛图标实现密码可见性切换概要整体架构流程技术名词解释技术细节实现效果展示概要 本文介绍如何使用 Qt 框架为 QLineEdit 控件添加一个右侧的眼睛图标&a…

Unity里的对象旋转数值跳转问题的原理与解决方案

文章目录1. 问题描述2. 问题原因3. 解决方案3.1通过多个父子关系从而控制旋转&#xff08;推荐&#xff09;3.2 使用四元数进行旋转1. 问题描述 我们现在写一个3D的Unity程序&#xff0c;我们现在设置了一个物体后&#xff0c;我们想旋转使其改为我们想要的情况。但是我们如果…

为什么现代 C++ (C++11 及以后) 推荐使用 constexpr和模板 (Templates) 作为宏 (#define) 的替代品?​

我们用现实世界的比喻来深入理解​​为什么 C 中的宏 (#define) 要谨慎使用&#xff0c;以及为什么现代 C (C11 及以后) 推荐使用 constexpr 和模板 (Templates) 作为替代品。​​&#x1f9e9; ​​核心问题&#xff1a;宏 (#define) 是文本替换​​想象宏是一个 ​​“无脑的…

PyCharm vs. VSCode 到底哪个更好用

在 Python 开发者中&#xff0c;关于 PyCharm 和 VSCode 的讨论从未停止。一个是功能齐备的集成开发环境&#xff08;IDE&#xff09;&#xff0c;另一个是轻快灵活的代码编辑器。它们代表了两种不同的开发哲学&#xff0c;选择哪个&#xff0c;往往取决于你的项目需求、个人习…

FPGA学习笔记——VGA彩条显示

目录 一、任务 二、分析 三、代码 四、实验现象 五、更新 一、任务 使用VGA实现彩条显示&#xff0c;模式是640x48060。 二、分析 首先&#xff0c;模式是640x48060&#xff0c;那么对照以下图标&#xff0c;知道其它信息&#xff0c;不清楚时序和VGA扫描方式的可以看看这…

ES-301A :让 Modbus 设备无缝接入工业以太网的高效桥梁

在工业自动化领域&#xff0c;串口设备与以太网的互联互通是提升系统效率的关键。ES-301A 工业以太网串口网关作为上海泗博自动化精心打造的专业解决方案&#xff0c;以强大的协议转换能力、工业级可靠性和灵活配置特性&#xff0c;成为连接 Modbus RTU/ASCII 设备与 Modbus TC…

【学习笔记】FTP库函数学习

【学习笔记】FTP库函数学习 FTP基本指令步骤 1、初始化会话句柄&#xff1a;CURL *curl curl_easy_init(); 2、设置会话选项&#xff1a; 设置服务器地址&#xff0c;设置登录用户和密码 curl_easy_setopt(curl, CURLOPT_URL, ftp_server); curl_easy_setopt(curl, CURLOPT_US…

ARM Cortex-M异常处理高级特性详解

1. 异常处理概述 ARM Cortex-M处理器提供了高效的异常处理机制&#xff0c;包含多种硬件优化特性&#xff0c;显著提升了中断响应性能和系统效率。这些特性对于实时嵌入式系统和网络协议栈&#xff08;如LwIP&#xff09;的性能至关重要。 1.1 Cortex-M异常处理架构 Cortex-M异…

【图像算法 - 08】基于 YOLO11 的抽烟检测系统(包含环境搭建 + 数据集处理 + 模型训练 + 效果对比 + 调参技巧)

一、项目背景与需求 【打怪升级 - 08】基于 YOLO11 的抽烟检测系统&#xff08;包含环境搭建 数据集处理 模型训练 效果对比 调参技巧&#xff09;今天我们使用YOLO11来训练一个抽烟检测系统&#xff0c;基于YOLO11的抽烟检测系统。我们使用了大概两万张图片的数据集训练了…