图文并茂 Postfix如何接收邮件

运维 系统运维
在Linux系统下,postfix是我们通常用的邮件系统,发送接收邮件都是通过一系列的后台操作完成的。那么Postfix如何接收邮件呢?

  当一封邮件进入Postfix邮件系统后,首先被放入incoming queue(入口队列). 下图体现了处理一封新邮件涉及的主要进程和顺序。 带数字的名称代表Postfix的命令或服务程序,不带数字的名称代表Postfix的邮件队列。

 

Postfix/如何/接收邮件

  网络邮件通过 smtpd(8) 或 qmqpd(8) 服务器进入Postfix,这两个服务删除邮件的SMTP或QMQP协议封装(去掉协议头,又叫解封),并且强制进行一些邮件健康检查(sanity checks)来保护Postfix,然后将邮件的发送者、接收者地址和邮件内容交给cleanup(8)服务处理。可以通过配置 smtpd(8)服务来阻塞服务器不想接收的邮件,具体的配置方法可以参看:SMTPD_ACCESS_README 。

  本机发送的邮件是由Postfix自带的 sendmail(1)兼容性命令来处理,并且被特权命令postdrop(1) 放入 maildrop queue队列中进行排队,这种方式使得即使Postfix邮件系统没有运行也能正常工作(本机能够发送邮件,只不过发送完的邮件必须在maildrop queue中,直到Postfix邮件系统启动才能被发送出去。但对用户来讲,不必关心邮件什么时候被发送出去。)。 本地的 pickup(8)服务从maildrop queue中读取本机发送的邮件,并且强制进行一些邮件健康检查(sanity checks)来保护Postfix,然后将邮件的发送者、接收者地址和邮件内容交给cleanup(8)服务处理。

  内部(Postfix邮件系统本身)发送来的邮件直接被提交给cleanup(8)服务来处理,这部分没有包括在上面的图示中。所谓内部发送的邮件主要包括:被local(8)投递代理转发的邮件(参看下一小节)、被bounce(8)服务(参看下一小节)返回给发送者的邮件以及postmaster关于Postfix系统问题的通知。

  cleanup(8)服务进行邮件进入队列(incoming queue)前的最后一次处理,它将增加一些丢失的消息头、按照地址转换规则(参看 ADDRESS_REWRITING_README)重写邮件地址。另外,cleanup(8)服务可以使用正则表达式配置为轻量级的内容检查器,请参看:BUILTIN_FILTER_README 。 cleanup(8)服务将处理完的邮件以单个文件的方式放入 incoming queue队列,并通知队列管理器有新邮件到达。

  trivial-rewrite(8)服务将邮件地址(发送者)重写为标准的邮件地址格式:"user@fully.qualified.domain",参看:ADDRESS_REWRITING_README 。Postfix当前版本本身不执行地址重写语言(rewriting language),但是大多数情况下我们可以通过表查找或正则表达式来实现。

【编辑推荐】

  1. Postfix对邮件的处理流程
  2. Linux下的邮件服务器 postfix
  3. 如何安装Postfix
  4. Postfix邮件安装实现介绍
  5. Postfix入门篇
  6. postfix 安装配置
  7. Postfix的配置
  8. 图文并茂 Postfix如何投递邮件
责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-01-19 17:30:21

Postfix邮件投递

2011-01-20 09:13:18

Postfix

2011-11-21 15:12:54

Java断点Eclipse

2011-01-18 18:08:28

Thunderbird

2011-01-18 18:29:28

Thunderbird

2023-05-16 08:01:13

架构网站演进

2012-07-23 14:39:27

移动

2021-12-27 08:04:49

架构网站高并发

2011-01-21 10:28:06

2011-01-19 10:30:20

UbuntuThunderbird

2022-07-18 14:33:05

PythonPDF报告

2012-05-29 14:27:34

PHP

2012-07-27 10:27:19

OfficeWord

2011-08-03 15:21:23

ORM XCode 数据库

2009-07-15 14:49:16

2022-04-20 18:30:00

算法架构粗排

2011-07-04 16:57:36

QT 布局 界面

2023-09-27 08:46:44

Java 技术编程语言

2011-07-20 12:49:49

XCode SnapShots SCM

2010-07-14 10:17:14

MyEclipse汉化
点赞
收藏

51CTO技术栈公众号