邮件系统本来就是一个信息密集,并发请求大的系统。看一看主流邮件系统的一些结构对自己以后设计和实现更高效,更稳健的系统有帮助。
这里记录了一些POSTFIX的应用结构,在一些并发问题的处理等方面的特性。
==================我是悲催的分界线=============================
1.Postfix简介
Postfix最初是由Wietse Venema开发后来由IBM research支持的邮件发送程序。
2.Postfix的结构特点
区别于"单体式应用",postfix是一种“模块化设计”的方式组织应用。应用的各个功能被设计成不同的module,并应驻留在内存中的后台进程形式工作。包括完成SMTP发送的smtp daemon,完成日志记录功能的log daemon,完成邮件清理的cleanup daemon等等。这些模块由master daemon在启动时统一加载。
(反思:这样设计的目的好处在于能够将不同功能分离,权限分离,更加安全和更易管理和维护)
3.邮件发送走向
3-1如何接收邮件
从上图我们可以看到,POSTFIX邮件的来源主要有以下2种
(1)接收来自本机系统的邮件(本机用户或自主进程提交)
(2)来自外部网络的邮件
来自本机的邮件
i.来自本机的邮件会被postdrop程序放到postfix队列目录下的maildrop/子目录
ii.pickup daemon会定期(服务器配置)唤醒检查maildrop中是否又待发送的邮件
iii.送到cleanup daemon进行清洗工作,以后同来自网络的邮件
来自网络的邮件
i.来自网络的邮件通常分为两种
一。外界寄个postfix所控制网域的邮件(终点),
二。外界寄给POSTFIX的其他网域的邮件,需要转发rely
不过不论是哪种情况POSTFIX都会直接将邮件交由cleanup daemon处理。
CleanUp daemon是邮件进入队列前的最后一站,用于添加一些邮件缺失信息,或者进行一些内容校验等工作。由此接受功能完成。
3-2 如果递送邮件(POSTFIX的队列结构)
在3-1之后,邮件进入到incoming队列开始进入递送流程
Postfix是以队列结点的形式来递送邮件的,图中提到的是以下几种队列
incoming(收件队列),active(活动队列) ,deferred(延迟队列)
这三种队列的工作方式
i.incoming queue用来存放新邮件,是邮件队列的入口
ii.下一站是active queue,这个队列存放着已经准备被递送的邮件
iii,如果递送失败(网络断开,或者收件夹满等),会被移到deferred queue
延迟队列会每隔一段时间被扫描,如果重试时间到,邮件将会被重放到active queue里(重试时间取决于-1.重试时间是否到达2.重试时间在配置的最大值最小值之间),延迟队列里的邮件默认将存放5天,如果5天内邮件被递送则邮件会被删除,如果超过5天,在删除的同时,会被认为邮件不可递送,有bounce daemon发送一封弹回通知给发件者。
PS:对于队列的设计,可以是内存队列,也可以是文件队列,那么POSTFIX的队列是什么样的呢。
POSTFIX的队列是以文件形式存在的,queue manager管理了一定数量的的队列文件夹,这些文件夹就是队列的存在。每一个队列在queue_directory参数中指定存储路径。默认为/var/spool/postfix/,那么我们的几种队列就分别是
/var/spool/postfix/incoming/
/var/spool/postfix/deferred/..。等
(反思:为什么POSTFIX会采用文件夹形式描述队列,个人认为是为了可靠性,在发送过程中难免出现掉电,down机,网络异常等情况,用文件形式存储邮件可以保证邮件在任何时候都有实体存在,不会丢失)
当然POSTFIX的队列还有诸如故障队列,hold队列等,这里就不阐述了。
- 大小: 36.2 KB
- 大小: 41.1 KB
- 大小: 11.1 KB
分享到:
相关推荐
POSTFIX是一款广泛使用的开源...通过深入学习和实践,您可以熟练掌握POSTFIX的各个方面,无论是小型组织还是大型企业,都能构建出高效可靠的邮件系统。阅读提供的"postfix.pdf"文档将进一步增强您的理解和操作能力。
Postfix邮件系统是一款开源、高性能、安全且易于管理的邮件传输代理软件,广泛应用于各种规模的企业和组织。它由Wietse Venema在1998年开发,旨在替代Sendmail,提供更快、更安全、更灵活的服务。Postfix的设计理念...
在IT行业中,邮件系统是企业通信的核心组成部分,而Postfix是一款广泛应用的开源MTA(邮件传输代理),尤其适合中小企业和大型组织。本教程将详细讲解如何在基于Linux的CentOS操作系统上搭建Postfix邮件系统。 首先...
总之,Postfix是一个功能强大、灵活且安全的邮件服务器软件,对于任何需要搭建邮件系统的用户来说,掌握Postfix的安装、配置和管理技巧都是至关重要的。通过学习和实践,您可以充分利用Postfix为您的企业或组织提供...
### 构建Postfix电子邮件系统的关键知识点 #### 一、实验背景与目标 在本实验中,我们将基于已有的LAMP(Linux, Apache, MySQL, PHP/Perl/Python)环境,构建一个完整的电子邮件系统。该系统包括邮件发送、接收、...
10. **故障排查**:学习识别和解决常见的Postfix问题,如邮件队列积压、无法发送或接收邮件等,是保持邮件系统稳定的关键。 总之,Postfix-2.10作为一个成熟的邮件系统,提供了许多功能和灵活性,适用于从小型企业...
通过本篇文章的学习,您将能够掌握构建一个稳定、安全的企业级邮件系统的步骤和技术要点。 #### 二、安装配置Postfix 1. **环境准备**:以Red Hat 6.4为例,其他Linux发行版也可参照进行适当调整。 - **系统基础**...
在企业环境中,基于Postfix或Sendmail的邮件系统是最常见且广泛使用的解决方案,因为它们具有高性能、高安全性和开源免费的特性。 系统采用了Browser/Server(B/S)模式进行开发,这意味着用户可以通过Web浏览器...
Postfix邮件系统是一种广泛使用的开源邮件传输代理,它在Linux和Unix系统中被用来处理电子邮件的接收、发送和路由。Postfix的设计目标是提供高效、安全和可管理的邮件服务,同时保持简单和灵活的配置。以下是关于...
在本文档中,我们探讨了如何构建和优化一个基于Postfix的邮件系统,以及与之相关的组件和安全措施。Postfix是一种广泛使用的SMTP服务器,它提供了高效、安全的邮件传输功能。我们的目标是理解Postfix及其相关组件的...
此外,对Postfix的源码进行分析,还能加深对SMTP协议和邮件处理流程的理解,为开发自己的邮件系统或者优化现有服务提供宝贵经验。 总之,Postfix 2.5.5在C++和Linux环境下的通信实现是一个丰富的学习资源,涵盖了...
Postfix 是一个自由开源的 MTA(邮件传输代理),用于在 Linux 系统上路由或传递电子邮件。在本指南中,你将学习如何在 CentOS 8 上安装和配置 Postfix。 实验室设置: 系统:CentOS 8 服务器 IP 地址:192.168....
- **起源与目标**:Postfix项目的初始目标是创建一个具有广泛适用性的邮件系统。它旨在克服传统邮件系统面临的局限性,特别是在安全性与灵活性方面。 - **设计理念**:作者提到,“所有程序员都是理想主义者”,这句...
在Linux系统中,Postfix是一款广泛应用的开源邮件传输代理,用于处理电子邮件的发送和接收。本文将详细讲解如何通过源码编译的方式在Linux上安装Postfix,这将有助于理解其内部工作原理,并能根据特定环境进行定制...
Postfix是一款广泛使用的开源邮件传输代理(MTA),它负责在互联网上传输电子邮件。这款软件以其高效、稳定和安全性著称,是...通过不断学习和实践,你将能够更好地理解和管理Postfix,确保电子邮件系统的稳定和安全。
POSTFIX权威指南是一本深入解析Postfix邮件服务器的专著,对于任何想要理解和管理Postfix邮件系统的读者来说,这无疑是一本不可或缺的参考书籍。Postfix是由Wietse Venema开发的一款开源邮件传输代理(MTA),因其...
- **安装过程**:指导如何在不同操作系统(如Linux、Unix等)上安装Postfix。 - **基本配置**:介绍Postfix的核心配置文件`main.cf`和`master.cf`,以及如何设置域名、主机名等基本信息。 - **高级配置**:讲解如何...
此外,还会介绍如何与其他邮件系统集成,比如Exchange、Lotus Domino等。 在性能优化方面,手册会指导读者如何调整Postfix以适应不同规模的邮件流量,包括设置多线程、负载均衡和缓存策略。同时,也会讨论故障排查...