Qmail邮件服务器工作原理分析

  qmail是一个因特网邮件传送代理(简写为MTA),它运行在linux/Unix兼容系统下,是一个直接代替UNIX下Sendmail软件的邮件传送程序。qmail使用SMTP协议与其它系统上的MTA交换邮件。

  作为Linux下面主流的邮件系统内核,大量著名的商业邮件系统都是在Qmail内核下开发,比如">Hotmail等。Qmail具有安装方便、安全性高、邮件结构合理、支持SMTP服务、队列管理、邮件反弹、基于域名的邮件路由、SMTP传输、转发和邮件列表、本地(邮件)传送、POP3 服务等强大的功能。它已经逐渐替代传统的Sendmail成为linux下邮件系统内核的主流选择。

1.概述

以下是qmail的数据流简图

qmail-smtpd --- &g 
t;>qmail-queue --->> qmail-send <<--- qmail-rspawn <<--- qmail-    remote

/ |

qmail-inject _/ qmail-clean \_ qmail-lspawn <<--- qmail-local

qmail中,每一条消息都发送到中央队列等待发送,由qmail-queue进程控制。它在以下情况被调用:

1、当产生本地消息时,qmail-inject进程调用qmail-queue。

2、qmail-smtpd准备SMTP协议下的投递邮件任务时调用它。

3、向前(forwarded)发送邮件时,qmail-local调用它。

4、退回邮件时,qmail-send调用它。

每封邮件接着由qmail-lspawn 和qmail-rspawn协助qmail-sned进程完成投递,最后由qmail-clean清除邮件队列。这四个进程是系统由始至终都在运行的,十分重要。

qmail的队列被设计成很强的鲁棒性,并假定基础的文件系统也是强健的。所有的cleanups清除队列操作都由qmail-send独立控制,无须人为干预。详细请看第六部分。

时间: 2024-10-23 12:26:04

Qmail邮件服务器工作原理分析的相关文章

使用PHP开发qmail邮件服务器管理系统

服务器|邮件服务器 电子邮件在网络中占有很重要的地位.目前,在企业中运行的邮件服务器均用各自独立的管理系统来实现账号创建.口令修改.邮箱扩容.删除邮箱等功能.当邮箱用户达到一定数量时,邮件管理员的日常维护工作显得极为繁重,这就需要将一部分管理任务(如账号申请)实现自动化处理:同时将一部分任务(如口令修改)由多个分组管理员来负责,从而使邮件管理员从繁琐的维护工作中解脱出来,真正对邮件服务器起到监管作用. 邮件服务器及开发环境的选择目前很多邮件服务器不提供开发接口,因此在企业内部实现开发邮件管理系统

百度搜索引擎工作原理分析

在正式学习SEO之前,你还需要学习一下搜索引擎的工作原理,毕竟SEO是针对搜索引擎进行操作的,那么弄明白搜索引擎的工作原理,那么遇到一些问题的时候,你就可以知道问题产生的原因了.一个搜索引擎,一般由下面几个模块组成: 1.抓取模块 2.过滤模块 3.收录模块 4.排序模块 抓取模块 搜索引擎在运作的时候,第一个工作就是要去互联网上面抓取页面,而实现这个工作的模块,我们称为抓取模块.学习抓取模块,我们需要先了解下面几个知识点:1.搜索引擎抓取程序:蜘蛛 搜索引擎为了可以自动抓取互联网上面数以万计的

MultiDex工作原理分析和优化方案

动态加载技术(插件化)系列已经坑了有一段时间了,不过UP主我并没有放弃治疗哈,相信在不就的未来就可以看到"系统Api Hook模式"和插件化框架Frontia的更新了.今天要讲的是动态加载技术的亲戚 -- MultiDex.他们的核心原理之一都是dex文件的加载. MultiDex是Google为了解决"65535方法数超标"以及"INSTALL_FAILED_DEXOPT"问题而开发的一个Support库,具体如何使用MultiDex现在市面已

DHCP服务器工作原理、安装与故障排除

DHCP 是 Dynamic Host Configuration Protocol(动态主机分配协议)缩写,它的前身是 BOOTP.BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘起动并连接上网络,BOOTP 则可以自动地为那些主机设定 http://www.aliyun.com/zixun/aggregation/29912.html">TCP/IP 环境.但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与 IP 的对

Google广告管理系统工作原理分析

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Google 广告管理系统小组Google广告管理系统推出半年来收到了很多发布商朋友的好评,为了更好的让大家了解和正确使用Google广告管理系统,保护广大Google合作伙伴.用户的利益,我们特提醒广告发布商在需要了解Google 广告管理系统时,请通过Google官方网站 www.google.com/admanager 查找相关信息和答案.Google广告

JavaScrip单线程引擎工作原理分析_javascript技巧

从基础的层面来讲,理解JavaScript的定时器是如何工作的是非常重要的.定时器的执行常常和我们的直观想象不同,那是因为JavaScript引擎是单线程的.我们先来认识一下下面三个函数是如何控制计时器的. 推荐阅读:雕虫无小技 JavaScript初学者的10个迷你技巧 复制代码 代码如下: var id = setTimeout(fn, delay); 初始化一个计时器,然后在指定的时间间隔后执行.该函数返回一个唯一的标志ID(Number类型),我们可以使用它来取消计时器. 复制代码 代码

javascript 定时器工作原理分析_javascript技巧

setTimeout() MDN对 setTimeout 的定义为: 在指定的延迟时间之后调用一个函数或执行一个代码片段. 语法 setTimeout 的语法非常简单,第一个参数为回调函数,第二个参数为延时的时间.函数返回一个数值类型的ID唯一标示符,此ID可以用作 clearTimeout 的参数来取消定时器: var timeoutID = window.setTimeout(code, delay); IE0+ 还支持回调参数的传入: var timeoutID = window.setT

GOOGLE 工作原理分析

首先先谈下GOOGLE蜘蛛起源: 当GOOGLE搜索引擎刚建立之初,就拥有这一个非常强大的的服务器, 其每天放出大量的蜘蛛,我们称为1号蜘蛛,其抓取量抓取速度是非常的快, 对其整个互联网每天进行信息进行的采集,可见服务器的速度是多少快,其实最主要的是后期GOOGLE 将服务器延伸到了很多城市,所以现在你能发现GOOGLE的运算速率是超前的快. 服务器将采集的信息分类,整理.到庞大的数据库. 其中有个数据库都是用来存网站域名的. 域名只要被搜索引擎索引到,将自动存入此数据库. 此数据库是1号蜘蛛的

php session工作原理分析

众所周知,http协议是一个无状态协议,简单来说就是,web服务器是不知道现在连接上来的人到底是哪个人,为了满足选择性发送信息的需求,在http的基础上做了很多扩展来达到这个目的,如数字签名.cookie.session等. web服务器或者web程序如何能够知道现在连接上来的是谁?要解决这个问题,首先需要在服务器端和客户端建立一一对应关系,下边我通过抓取http的内容来说明这种对应关系是如何建立的. 我使用的是一个叫做httplook的http包嗅探工具,然后在本地web服务器的根目录下建立一