6.7.2 qmgr_message_read函数:创建QMGR_MESSAGE结构体
2016-04-07 15:16
232 查看
qmgr_message_alloc-> qmgr_message_create->qmgr_message_read函数从文件系统读取邮件信息。由于邮件信息采用record格式存放,所以使用if语句链根据record格式类型读取信息。这和cleanup模块从流(unix域协议)中读取smtpd模块传入的信息类似。
发件人信息记入QMGR_MESSAGE->sender字段中:
收件人信息用RECIPIENT结构体表示,被添加到QMGR_MESSAGE结构体RECIPIENT_LISTrcpt_list字段中:
这里仅是将原信中提供的收件人地址读取并记录下来。由于6.3中MTA改写收件人地址机制的存在,接下来需要调用qmgr_message_reslove函数解析收件人地址,得到真正的最终收件人地址。
发件人信息记入QMGR_MESSAGE->sender字段中:
if(rec_type == REC_TYPE_FROM) { if (message->sender == 0) { message->sender =mystrdup(start);
收件人信息用RECIPIENT结构体表示,被添加到QMGR_MESSAGE结构体RECIPIENT_LISTrcpt_list字段中:
if (rec_type== REC_TYPE_RCPT) { /* See also below for code settingorig_rcpt etc. */ if (message->rcpt_offset == 0) { message->rcpt_unread--; recipient_list_add(&message->rcpt_list,curr_offset, dsn_orcpt ? dsn_orcpt : "", dsn_notify ? dsn_notify : 0, orig_rcpt ? orig_rcpt : "",start);
这里仅是将原信中提供的收件人地址读取并记录下来。由于6.3中MTA改写收件人地址机制的存在,接下来需要调用qmgr_message_reslove函数解析收件人地址,得到真正的最终收件人地址。
相关文章推荐
- C#学习---C#简介
- 从Hadoop配置文件深刻理解MapReduce优化
- Golang初学者的资源整理
- delphi 中字符串与16进制、10进制转换函数
- 转载:CentOS yum 源的配置与使用
- IIS7配置PHP图解(转)
- svn和maven
- 在线修改Schema
- 详解Spring应用作为EJB客户端调用EJB方法
- mybatis
- Swift快速给Cocoa库内置类添加便捷初始化器
- Apache Ignite 网格计算 (可用来取代dubbo等分布式RPC)与 spring 整合
- Python SMTP发送邮件 - 带附件
- DOM启蒙——第一章
- 对Servlet容器的补充
- Spring3.0详解
- Swift快速给Cocoa库内置类添加便捷初始化器
- Swift快速给Cocoa库内置类添加便捷初始化器
- 使用mysqldump备份数据库时报Got error: 2013错误
- 性能检测工具