2.2.3.1 基本收发信过程中的模块
来源:互联网 发布:斗鱼程序员 工资待遇 编辑:程序博客网 时间:2024/06/06 09:22
master模块是postfix的主模块,被首先执行,以root权限作为守护进程执行,负责管理其他模块的启停。
接下来的处理大致按照smtpd->cleanup->qmgr->MDA模块的顺序执行。
smtpd模块负责解析smtp协议。该模块有两种运行模式:stand-alone和网络模式。stand-alone模式接收来自本地的sendmail –bs命令传递来的邮件,网络模式接收来自网络的邮件。
pickup模块默认每分钟检查sendmail程序放在maildrop目录中的信件,将其置入incoming队列。
cleanup模块负责将邮件按RFC822的格式进行整理。
qmgr模块负责队列调度。邮件将从incoming或deferred队列放入active队列,qmgr模块负责发送active队列中的邮件,如果发送有延迟则可能将其置入deferred队列。
smtp、local、virtual等模块是MDA模块,分别进行面向网络、本机、虚用户方式的邮件传输。
bounce模块负责处理邮件状态通知信,包括退信、发送延迟提醒信、发送成功提醒信等,生产系统上经常只为用户发送退信。
error模块调用bounce模块的功能。将其独立为一个模块可以在独立的进程中实现销毁延迟发信活动内存数据(in-core)的功能,见6.8.1。
anvil模块负责统计客户端并发连接数等统计计数,postfix使用这些统计计数完成对恶意客户端(这些客户端的并发连接可能会超过限制)的阻挡等功能。
trivial-rewrite模块负责地址重写和解析。本地用户可能在smtp会话过程中没有提供完整的邮件地址,如2.1.2中的例子,这时trivial-rewrite模块的本地地址重写功能可以为其补全地址的域名部分。收信人地址在一些情况下需要被改写(见6.2),这时也需要trivial-rewrite模块解析收信人地址。使用trivial-rewrite模块进行收信人地址解析是从active读取邮件内容后要做的第一个操作。
简单的信件收发场景可以分为两类:
从本地发信,即使用sendmail–bs会话发信。该命令将开启一个命令行模式smtp会话。会话完成后,postdrop程序将邮件存入maildrop队列目录。pickup模块负责定期检查该目录,将该目录中的新邮件交给cleanup模块处理。
对于来自网络的邮件,由smtpd模块完成smtp协议解析后,将信件交给cleanup模块处理。
可见信件最终都将交给cleanup模块,由cleanup模块整理格式后交给qmgr模块,qmgr选择合适的MDA发信(或延迟发信等)。邮件状态提醒信也会交给cleanup模块处理(见6.3节,都会调用post_mail_fopen_nowait函数连接cleanup模块)。
在master.cf中,error模块默认有两个服务名:error和retry:
error unix - - n - - error
retry unix - - n - - error
bounce模块默认也有两个服务名:bounce和defer:
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
- 2.2.3.1 基本收发信过程中的模块
- 2.1.2 基本的本地用户收发信功能
- 求职过程中的拒信
- CC1100无线收发模块
- GSM900模块收发短信
- 单片机基于2.4G无线收发模块NRF24L01的无线通信(基本测试通过)
- 单片机基于2.4G无线收发模块NRF24L01的无线通信(基本测试通过)续
- STM8S_004_UART基本收发数据
- STM8S_004_UART基本收发数据
- java收发邮件过程.
- java收发邮件过程.
- 环信收发文本消息
- 彩信收发模块设计备忘录
- 无线收发模块产品方案
- 多用途DF无线数据收发模块
- 无线收发模块的使用
- Python中的CSV模块基本用法
- 《Python中的模块设计的基本思想》
- 美团实例详解机器学习如何解决问题
- 【代码笔记】iOS-将log日志保存到文件
- 分数类
- 第3次上机实验
- C++实验3个人所得税计算器
- 2.2.3.1 基本收发信过程中的模块
- struts2如何输出错误信息
- Java NIO Buffer
- 关于单片机按键问题总结
- Centos开机自启动redis
- c++上机实验3项目一
- 2.2.3.2 postfix与TLS、SASL
- 机器学习中的数据清洗与特征处理综述
- 《iOS Human Interface Guidelines》——Text Field