电子邮件服务器

news2024/11/29 11:06:46

目录

一、相关知识

二、邮件服务器种类

三、邮件传输协议

四、DNS中的MX记录

五、电子邮件系统工作原理

六、配置文件相关参数

七、邮件服务器配置案例

7.1设置用户别名邮箱

7.2空壳邮件服务器


一、相关知识

1、电子邮箱系统三个组成部分

MUA(telnet):邮件用户代理。主要用于撰写邮件信息并和邮件服务器之间通过SMTP协议进行向邮件服务器发送或接收邮件信息。

MTA(postfix):邮件传输代理。即SMTP邮件服务器,用于接收邮件客户端或者其它域名的SMTP邮件服务器发送过来的邮件。或者是向其它域名的MSTP邮件服务器转发邮件信息。

MDP(Dovecot): 邮件投递代理。一般使用POP3/IMAP4协议和SMTP邮件服务器安装在一起,用于向本地域名下的邮件用户提供接收邮件的服务。

二、邮件服务器种类

SMTP服务器:用于替用户发送和接受外面发送给本地用户的邮件(相当于邮局的接受部门)。

POP3/IMAP服务器:由于帮助用户读取SMTP服务器接收进来的该用户的邮件(相当于专门为前来取包裹的用户提供服务的部门)。

三、邮件传输协议

SMTP协议:定义了邮件客户端软件与SMTP服务器之间,以及两台SMTP服务器之间的通信规则。

POP3协议:客户端与POP3服务器之间的通信规则。

IMAP协议:对POP3协议的一种扩展。

四、DNS中的MX记录

记录域名和其SMTP服务器之间的映射关系;当SMTP邮件服务器接收到一个收件人地址域名不是本地域名的邮件时,通过向DNS服务器查找收件人的MX记录来获取收件人域名下的邮件服务器IP地址,然后将其邮件发送给对方MSTP邮件服务器。

五、电子邮件系统工作原理

一个QQ邮箱的A发给163邮箱B:qq邮箱用户用qq邮箱客户端发邮件给qq的SMTP服务器,然后qq的SMTP服务器会查询MX记录,找到163邮箱的SMTP服务器的信息,然后发送给它,163的SMTP收到邮件后判断该邮件是否属于该SMTP服务器的管辖范围,如果是的话就直接把邮件存储到收件人B的邮箱中。163邮箱用户就可以用客户端软件和163的POP3/IMAP建立连接通过POP3/IMAP协议查看邮件。

六、配置文件相关参数

1、Postfix服务程序主配置文件/etc/postfix/main.cf中的重要参数

myhostname------邮局系统的主机名

mydomain---------邮局系统的域名,用于指定邮件服务器所使用的域名。

myorigin-----------如果邮件发送者在通过此邮件服务器发送邮件时,在指定邮件发送者选项时只写了发送者的账户名而@后没跟域名,邮件服务器就会自动在其地址后面加myorigin参数指定的域名。

inet_interfaces--------邮件服务器监听的本机网卡接口

mydestination--------邮件服务器可接收哪些收件人是@域名后缀的邮件

mynetworks--------列出可通过本邮件系统寄出邮件的网络地址或ip地址 

relay_domains------设置本邮件服务可以转发哪些域名的邮件

home_mailbox --------指定接收到本域邮件将其存储的路径

2.Dovect投递代理配置文件参数

/etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp  --------指定其支持的邮件协议

listen = *  --------表示Dovect程序监听本地所有接口

login_trusted_networks = 192.168.200.0/24       ----------指定允许那些客户登录本邮件服务器查询自己收到的邮件。

/etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no    ------默认情况下Dovect投递代理要求用户在登录服务器查询收到的邮件之前需要加密进行身份验证由于主机没有配置SSL加密,因此将此选项设置为不加密进行身份验证。

/etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir      -----告诉Dovect程序本域邮件存放在哪个路径下了,需与postfix指定的路径相同;否则在用户在用telnet查找自己接收的邮件时,找不到收到的邮件。

七、邮件服务器配置案例

实验准备:

邮件服务器

IP:192.168.200.254/24

主机名:mail.qq.com

邮件客户端

IP:192.168.200.28/24

实验步骤

mail-server:

1、设置邮件服务器的主机名

2、安装配置DNS域名解析,使网络上的客户可以通过邮件服务器域名登录邮件服务器;同时指定邮件服务器的MX记录,使其它域名上的邮件服务器在使用此DNS做域名解析时,可以通过MX记录将收到的@qq.com的邮件转发到本域的@qq.com邮件服务器。

3、安装postfix邮件传输程序。

4、修改postfix的主配置文件

94 myhostname = mail.qq.com          //指定邮件服务器的主机名

102 mydomain = qq.com                      //指定邮件服务器提供的邮件地址域名

118 myorigin = $mydomain          //引用前面定义的变量值,用于用户在发送邮件时,在填写用户名没跟域名时,邮件服务器在发给其它用户时,自动设置为myorigin指定的参数值。

138 inet_protocols = all                    //监听所有的接口,其它相同的注释掉。

183 mydestination = $myhostname, $mydomain     //允许邮件服务器接收哪些域名的邮件

438 home_mailbox = Mail_info/    //指定邮件服务器收到本域邮件存放的路径为家目录下的此目录(目录自动创建)。

5、检查配置是否有语法错误、防火墙放行postfix程序使用的SMTP协议流量和其端口、开启Postfix服务。

6、安装Dovect程序,并修改其配置文件

vim /etc/dovecot/dovecot.conf

 vim /etc/dovecot/conf.d/10-auth.conf

vim /etc/dovecot/conf.d/10-mail.conf

7、防火墙放行docvet基于的pop3、imap协议等,并开启dovecot服务。

8.给网络用户创建邮箱账号并设置其密码。

10.开始邮件服务测试。安装用户代理程序服务端telnet-server,防火墙并放行其服务端口23。

mail-Cliect

11、切换到客户端安装telnet程序,由于登录邮件服务的dovect程序收取邮件。

12、用telnet连接邮件服务器,用bajie向wukong发送邮件。

13、用telnet 110端口连接邮件服务器,wukong登录看是否收到bajie发来的邮件。

7.1设置用户别名邮箱

通过设置一个虚假的用户账号如:xujia。当其它真实的用户通过邮件服务器向收件人xujia@qq.com发邮件时,其实邮件并没有发给xujia这个并不存在的用户,而是发给了管理员指定的在邮件服务器注册了邮件账户的真实用户如:root。

1.切换到邮件服务器,编辑 /etc/aliases

2.切换到客户端,用root向xujia用户发送邮件,看看是否被真实的wukong用户接收了邮件。

观察发现发给别名用户的邮件却被真实的wukong用户接收了,实验结果成功!。

7.2空壳邮件服务器

由于用户在发电子邮件之前需要先连接上邮件服务器,这样的话用户就需要知道邮件服务器的域名或者其IP地址才能访问到邮件服务器,然后进行电子邮件的发送,因此真实邮件服务器的IP地址或者域名就暴露在公网下了很不安全。所以为了保护真实邮件服务器的安全就需要架设一台空壳邮件服务器。空壳邮件服务器和真实的邮件服务器主要的区别就是空壳邮件服务器只负责把用户发过来的邮件转发到指定的真实邮件服务器上,自己本身不保存用户发送过来的邮件。即用户连接上空壳邮件服务器之后,所发送的邮件不管收发件人的域名是否与本服务器相同(不会查找DNS的MX记录在转发给真实邮件服务器)都会将其直接转发到有管理员事先配置好的真实邮件服务器上,自己本身不存储邮件信息。空壳邮件服务器的后缀域名一般和真实邮件服务器的后缀域名一样,这样表面上看是把邮件发给空壳邮件服务器,实则空壳邮件服务器已将其邮件转发给了真实的邮件服务器上了;也可一不一样。

空壳邮件服务器搭建案例

前言:理想状态下便于理解需要两台服务器和一台客户机。本实验只使用两台Server,一台为真实邮件服务器另一台为空壳邮件服务器。真实邮件服务器上个案例已搭建完毕此处不在表述。

空壳邮件服务器:

1、设置空壳邮件服务器的主机名为null.qq.com。

2、在空壳邮件服务器所使用的DNS服务器上添加一条空壳邮件服务器的域名解析A记录。

[root@mail cur]# systemctl restart named

 

3、切换到空壳邮件服器上,安装postfix。

4、修改postfix的主配置文件/etc/postfix/main.cf,使其成为空壳邮件服务器。

94 myhostname = null.qq.com            //空壳服务器的主机名

102 mydomain = qq.com             //空壳邮件服务所使用的域名

118 myorigin = qq.com         //空壳邮件服务器在转发源发件人账户没指定域名时,空壳邮件服务器自动在其发件人@后补齐为@qq.com

132 inet_interfaces = all      //空壳邮件服务监听本机所有接口流量。

183 mydestination =          //由于空壳邮件服务器只转发邮件,不接收存储邮件所以将此处置为空。

283 mynetworks = 192.168.200.0/24     //空壳邮件服务器只转发此网段发送过来的邮件。

332 relayhost = 192.168.200.254      //指定要把收到的邮件转发给真的邮件服务器的IP地址

5、防火墙放行postfix基于STMP协议的流量和其25号端口;然后开启postfix服务。

6、在空壳邮件服务器上安装telnet-server用于用户登录此服务器上;并放行其服务和端口号;最后开启telnet服务。

7、在真实的邮件服务器上创建user1和user2用户并设置其密码。用于邮件测试。

8、在用户的电脑上安装telnet客户端程序用于登录到邮件服务器上。此实验把空壳邮件服务器也看做是一台客户机,同样也安装telnet客户端软件。

9、在客户端上使用telnet登录到空壳邮件服务器上使用在真实的邮件服务器上创建的user1来向user2发送邮件。

10、下面使用user2用户登录到真正的邮件服务器上,看其是否收到了由空壳邮件服务器转发过来的发给user2的邮件。

通过以上观察可以发现空壳邮件服务器是把由user1发给user2的邮件转发给了真正的邮件服务器,user2成功收到邮件。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

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

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

相关文章

【git】【IDEA】在idea中使用git

目录 一、 在IDEA中配置git 二、 获取git仓库 2.1 本次初始化仓库 2.2 从远程仓库克隆 三、 本地仓库操作 3.1 将文件加入暂存区 3.2 将暂存区的文件提交到版本库 3.3 快捷键 使用快捷键 实现加入到暂存区与提交到版本库 3.4 查看日志 Show History 四、 远程仓库操…

Liquid UI和Fiori的区别

主要围绕以下几个方面就Liquid UI和Firor来进行比较: 开发周期开发成本稳定性和支援性平台架构 影响Firor决策的因素: 复杂的编程过程,Fiori对开发人员要求高,开发难度大,而Liquid UI让开发人员不需要懂SAP后端&…

eureka迁移到nacos--双服务中心注册

服务注册中心的迁移有多种方式,官网使用nacos sync,还有民间开发的双注册中心组件eureka-nacos-proxy,但是我用了不太顺利,所以用的是阿里巴巴的双注册中心组件edas-sc-migration-starter spring boot:2.5.3 引入依赖 …

JVM内存管理、内存分区:堆、方法区、虚拟机栈、本地方法栈、程序计数器

内存管理 内存分区 线程共享 堆 存放实例,字符串常量(直接引用),静态变量,线程分配缓冲区(TLAB线程私有)。垃圾收集器管理的区域 方法区 非堆,和堆相对的概念。存储已被虚拟机加载的…

Python大数据处理利器之Pyspark详解

摘要: 在现代信息时代,数据是最宝贵的财富之一,如何处理和分析这些数据成为了关键。Python在数据处理方面表现得尤为突出。而pyspark作为一个强大的分布式计算框架,为大数据处理提供了一种高效的解决方案。本文将详细介绍pyspark…

使用 BERT 进行文本分类 (03/3)

一、说明 在使用BERT(2)进行文本分类时,我们讨论了什么是PyTorch以及如何预处理我们的数据,以便可以使用BERT模型对其进行分析。在这篇文章中,我将向您展示如何训练分类器并对其进行评估。 二、准备数据的又一个步骤 …

深度剖析java类和对象

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 在Java中,一切皆对象。 目录 一、类的定义和使用1.1类的定义格式1.2定义学生类 二、类的实例化三、this引…

MariaDB数据库服务器

目录 一、什么是数据库? 二、什么是关系型数据库? 三、数据库字符集和排序规则是什么? 四、常用数据类型 五、Mariadb数据库相关配置案例 一、什么是数据库? 数据库(DB)是以一定方式长期存储在计算机硬盘内…

【Terraform学习】使用 Terraform创建DynamoDB添加项目(Terraform-AWS最佳实战学习)

本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…

Android JNI系列详解之ndk-build工具的使用

一、Android项目中使用ndk-build工具编译库文件 之前介绍过CMake编译工具的使用,今天介绍一种ndk自带的编译工具ndk-build的使用。 ndk-build目前主要有两种配置使用方式: 如上图所示,第一种方式是Android.mkApplication.mkgradle的方式生成…

leetcode15. 三数之和(java)

三数之和 题目描述双指针法代码演示 题目描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xf…

机器视觉工程师们,学习是工作以外的事情

面试时,领导问你,很多技术问题,你永远的回答是,我可以学。 公司以为你来公司的目标就是学习,学完就跑。 那你进公司的目标到底是什么? 我认为你,你最好想好再回答。 对于每一家公司来说&#xf…

android——spinner下拉弹窗、popupwindow下拉弹窗列表

一、spinner下拉弹窗 效果图如下: adapter的代码: package com.yaona.spinnerimport android.R import android.content.Context import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.Vie…

配置环境变量的作用

配置环境变量的作用 一般运行过程:寻找QQ.exe所在的目录,输入QQ.exe配置环境变量:把QQ所在的路径配给操作系统Path, 在任何路径下都能运行QQ.exe 举例: 定义变量:SCALA_HOME SCALA_HOME、JAVA_HOME 等这…

27.CSS粒子特效

效果 源码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Vanilla JS Particles</title><link rel="stylesheet" href="style.css"> </head> <body>…

【2023百度之星备赛】码蹄集 BD202301 公园(BFS求最短路)

题目 https://www.matiji.net/exam/brushquestion/1/4347/179CE77A7B772D15A8C00DD8198AAC74?from1 题目大意&#xff1a; 给定一个无向图&#xff0c;有两个人往同一个目的地走&#xff0c;分别消耗体力TE、FE。如果他们到某个点汇合了&#xff0c;然后一起走向目的地&…

三、原型模式

一、什么是原型模式 原型&#xff08;Prototype&#xff09;模式的定义如下&#xff1a;用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里&#xff0c;原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效&a…

数据结构 day6

1->xmind 2->递归实现程序&#xff1a;输入一个数&#xff0c;输出该数的每一位

【哈士奇赠书活动 - 37期】- 〖深入浅出SSD:固态存储核心技术、原理与实战 第2版〗

文章目录 ⭐️ 赠书 - 《深入浅出SSD&#xff1a;固态存储核心技术、原理与实战 第2版》⭐️ 内容简介⭐️ 作者简介⭐️ 编辑推荐⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《深入浅出SSD&#xff1a;固态存储核心技术、原理与实战 第2版》 ⭐️ 内容简介 本书从基础认知、核心技…

Mac版JFormDesigner IDEA插件安装(非商业用途)

前言 仅供个人开发者使用&#xff0c;勿用作商业用途。 仅供个人开发者使用&#xff0c;勿用作商业用途。 仅供个人开发者使用&#xff0c;勿用作商业用途。 感觉做了这些年开发&#xff0c;怎么感觉市场越搞越回去了。桌面应用又成主流了&#xff1f; 甲方让做桌面客户端&am…