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类型的字段记录邮件各组成部分在文件中的位移:
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 */
相关文章推荐
- 5.8.2 格式处理流程
- mysql开启和使用事件、与服务器重启mysql错误
- ef 高级操作
- 2014新版12306接口分析
- 自定义控件给子View分配点击事件
- Android 获得联系人并排序
- Spring分布式事务实现
- 创建procedure (SQL存储过程的介绍, 建立和使用方法)
- Eclipse快捷键大全,导包快捷键:ctrl+Shift+/
- tomcat+java的web程序持续占cpu问题调试
- Ruby最佳实践--不要rescue Exception,rescue StandardError
- 运动会
- 超越线程池:Java并发并没有你想的那么糟糕
- SSH安全设置
- iOS:状态栏提示控件的实现原理
- ionic新建项目
- VS2013的一个bug
- Python一日一练09----奇偶排序
- bitmaps位图和mask掩码常用操作
- 解决android 5.0 webview不能加载http与https混合内容的问题