摘取的日志信息
Jan 22 10:08:33 zhjedu postfix/smtpd[21541]: connect from unknown[5.7.9.11]
Jan 22 10:08:33 zhjedu postfix/smtpd[21541]: 837AE3850EC: client=unknown[5.7.9.11], sasl_method=LOGIN, sasl_username=wxiaodong
Jan 22 10:08:33 zhjedu postfix/cleanup[21542]: 837AE3850EC: message-id=<20100122020833.837AE3850EC@mail.test.com>
Jan 22 10:08:34 zhjedu postfix/qmgr[21188]: 837AE3850EC: from=<wxiaodong@test.com>, size=3634, nrcpt=1 (queue active)
Jan 22 10:08:36 zhjedu postfix/smtpd[21541]: disconnect from unknown[5.7.9.11]
Jan 22 10:08:37 zhjedu postfix/smtp[21544]: 837AE3850EC: to=<wxd5981@gmail.com>, relay=gmail-smtp-in.l.google.com[209.85.222.68], delay=4, status=sent (250 2.0.0 OK 1264126131 42si3512720pzk.133)
Jan 22 10:08:37 zhjedu postfix/qmgr[21188]: 837AE3850EC: removed
上面的日志是发送邮件的一整套日志,从客户端连接邮件服务器,到邮件服务器发送邮件出去的过程
我们首先在邮件服务器上运行pstree,然后看一下postfix的相关进程:
master-+-anvil
| |-2*[cleanup]
| |-local
| |-pickup
| |-proxymap
| |-qmgr
| |-2*[smtpd]
| `-trivial-rewrite
postfix程序中,首先启动的是master进程,接着master进程负责启动anvil,2个cleanup,local,pickup,proxymap,qmgr,2个smtpd,trivial-rewrite,这个可以通过master.cf文件来控制都启动那些进程
master 进程是postfix的父进程,负责管理其他进程
anvil 进程是控制发信频率
cleanup 它根据canonical和virtual映射,加上缺少的信头,重写邮件地址。在把电子邮件插入到incoming队列之前,cleanup要用trivial-rewrite把它略做重写,这个程序对地址做一些小的修正,例如,给不完整的地址追加一个邮件域名
local 进程是负责投递发往本地的邮件,本地MDA
pickup 进程是负责监听来自本地的邮件,如果有新邮件,就将新邮件投递到cleanup
qmgr 队列管理器,如下是5个队列
— incoming(传入)—刚到的邮件;
— active(活动)—正在投递的邮件;
— deferred(推迟)—以前投递失败的邮件;
— hold(约束)—队列中的邮件被系统管理员阻止发送;
— corrupt(错误)—不可读或者不可分析的邮件
proxymap 查询表代理服务
smtpd 负责监听来自网络的邮件,例如,foxmail或者outlook发的邮件
从摘取的日志里能够清晰的看到邮件的动态,下面咱们一个一个解析它:
1. Jan 22 10:08:33 zhjedu postfix/smtpd[21541]: connect from unknown[5.7.9.11]
Jan 22 10:08:33 时间
zhjedu 主机名
postfix/smtpd postfix进程中的smtpd服务
#客户端连接到邮件服务器,客户端的IP地址是5.7.9.11,是postfix的smtpd进程处理了这个连接请求
2. Jan 22 10:08:33 zhjedu postfix/smtpd[21541]: 837AE3850EC: client=unknown[5.7.9.11], sasl_method=LOGIN, sasl_username=wxiaodong
837AE3850EC 表示的是这封邮件的邮件ID
client=unknown[5.7.9.11] 表示来自客户端5.7.9.11的连接
sasl_method=LOGIN 表示的是sasl的认证方法LOGIN
3. Jan 22 10:08:33 zhjedu postfix/cleanup[21542]: 837AE3850EC: message-id=<20100122020833.837AE3850EC@mail.test.com>
postfix/cleanup 表明处理的进程是cleanup
message-id ID
4. Jan 22 10:08:34 zhjedu postfix/qmgr[21188]: 837AE3850EC: from=<wxiaodong@test.com>, size=3634, nrcpt=1 (queue active)
postfix/qmgr 表明处理的进程是qmgr,邮件目前已经进入到队列中了
from=<wxiaodong@test.com> 发件人是wxiaodong@test.com
size=3634 邮件大小
queue active 已进入active邮件队列
5. Jan 22 10:08:36 zhjedu postfix/smtpd[21541]: disconnect from unknown[5.7.9.11]
postfix/smtpd 表明处理的进程是smtpd
disconnect from unknown[5.7.9.11] 邮件服务器已经断开和客户端的连接
6. Jan 22 10:08:37 zhjedu postfix/smtp[21544]: 837AE3850EC: to=<wxd5981@gmail.com>, relay=gmail-smtp-in.l.google.com[209.85.222.68], delay=4, status=sent (250 2.0.0 OK 1264126131 42si3512720pzk.133)
postfix/smtp 表明这个邮件不是发往本地的邮件,需要使用smtp进程来处理这个邮件
to=<wxd5981@gmail.com> 收件人是wxd5981@gmail.com
relay=gmail-smtp-in.l.google.com[209.85.222.68] 说明是gmail-smtp-in.l.google.com来接收了发往wxd5981@gmail.com的邮件
status=sent (250 2.0.0 OK 1264126131 42si3512720pzk.133) 说明邮件的状态是已经接收成功了
7. Jan 22 10:08:37 zhjedu postfix/qmgr[21188]: 837AE3850EC: removed
出现removed说明837AE3850EC这封邮件已经投递出去了.
转载于:https://blog.51cto.com/scanty/406509