您的位置:首页 > 其它

5.8.1 cleanup模块--cleanup模块的作用

2016-04-07 14:32 323 查看
smtpd.c辛苦收集在SMTPD_STATE中的邮件信息通过record类型用rec_fprintf或rec_fputs函数传递给cleanup模块。cleanup模块根据RFC822协议整理邮件文本并送往队列管理模块qmgr。

cleanup对邮件文本的处理如:补完缺失的From:,To:,Message-Id:,Date:首部,消除重复收件人地址,去除Bcc,Content-Length,Resent-Bcc,Return-Path首部等。

Bcc即密送地址,由于cleanup模块去除了该首部,所以对于postfix邮件服务器发出的有密送收件人的信件,不止是其他收件人,即便是密送对象本人,即便查看原信,也将无法看到该信被密送给自己。

cleanup模块所做的全部所以格式处理操作请参考官方文档:

www.postfix.org/cleanup.8.html

cleanup模块使用singer_server.c作为模板,回调函数为cleanup_service。用CLEANUP_STATE结构体存储相关信息。

CLEANUP_STAT的action字段表示用来重写邮件内容的回调函数:

state->action =cleanup_envelope_process;

CLEANUP_STATE的offset类型的字段记录邮件各组成部分在文件中的位移:

off_t   data_offset;                 /*start of message content */
off_t   body_offset;                /* start of body content */
off_t   xtra_offset;                  /* start of extra segment */
off_t   cont_length;                /* length including Milter edits*/
off_t   sender_pt_offset;               /* replace sender here */
off_t   sender_pt_target;              /* record after sender address */
off_t   append_rcpt_pt_offset;    /* append recipient here */
off_t   append_rcpt_pt_target;   /* target of above record */
off_t   append_hdr_pt_offset;      /* append header here */
off_t   append_hdr_pt_target;     /* target of above record */
off_t   append_meta_pt_offset;  /* append meta record here */
off_t   append_meta_pt_target; /* target of above record */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: