xrtMailMessageParse
严格解析 RFC 消息的字段块与正文,并在发布结果前验证全部字段。
bool xrtMailMessageParse( xstrview Source, size_t iMaxHeaderBytes, size_t iMaxHeaders, xmailmessageview* pMessage );
| 参数 | 说明 |
|---|---|
| xstrview Source | Source 参数 |
| size_t iMaxHeaderBytes | MaxHeaderBytes 参数 |
| size_t iMaxHeaders | MaxHeaders 参数 |
| xmailmessageview* pMessage | 出:消息 |
返回:严格解析 RFC 消息的字段块与正文,并在发布结果前验证全部字段。
示例已编译验证
/* 严格解析 RFC 消息的字段块与正文,并在发布结果前验证全部字段。 */ result = xrtMailMessageParse(Source, iMaxHeaderBytes, iMaxHeaders, pMessage);
xrtMailMessageHeader
按 ASCII 大小写不敏感名称查找第 N 个字段,返回三态结果。
xmailnext xrtMailMessageHeader( const xmailmessageview* pMessage, xstrview Name, size_t iOccurrence, xmailheaderview* pHeader );
| 参数 | 说明 |
|---|---|
| const xmailmessageview* pMessage | 出:消息 |
| xstrview Name | 名称(xstrview) |
| size_t iOccurrence | Occurrence 参数 |
| xmailheaderview* pHeader | 头部 |
返回:按 ASCII 大小写不敏感名称查找第 N 个字段,返回三态结果。
示例已编译验证
/* 按 ASCII 大小写不敏感名称查找第 N 个字段,返回三态结果。 */ result = xrtMailMessageHeader(pMessage, Name, iOccurrence, pHeader);
xrtMailTransferParse
解析已展开或合法折叠的 Content-Transfer-Encoding 字段值。
xmailtransfer xrtMailTransferParse(xstrview Value);
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
返回:解析已展开或合法折叠的 Content-Transfer-Encoding 字段值。
示例已编译验证
/* 解析已展开或合法折叠的 Content-Transfer-Encoding 字段值。 */ result = xrtMailTransferParse(Value);
xrtMailMessageTransfer
返回消息正文的传输编码;字段缺失时按标准返回 7bit。
bool xrtMailMessageTransfer( const xmailmessageview* pMessage, xmailtransfer* pTransfer );
| 参数 | 说明 |
|---|---|
| const xmailmessageview* pMessage | 出:消息 |
| xmailtransfer* pTransfer | Transfer 参数 |
返回:返回消息正文的传输编码;字段缺失时按标准返回 7bit。
示例已编译验证
/* 返回消息正文的传输编码;字段缺失时按标准返回 7bit。 */ result = xrtMailMessageTransfer(pMessage, pTransfer);
xrtMailMessageBodyWrite
按指定传输编码解码消息正文;原样编码允许同址写入。
bool xrtMailMessageBodyWrite( const xmailmessageview* pMessage, xmailtransfer Transfer, uint32 iFlags, void* pOutput, size_t iCapacity, size_t* pOutputSize );
| 参数 | 说明 |
|---|---|
| const xmailmessageview* pMessage | 出:消息 |
| xmailtransfer Transfer | Transfer 参数 |
| uint32 iFlags | 标志位 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pOutputSize | 出:输出长度 |
返回:按指定传输编码解码消息正文;原样编码允许同址写入。
示例已编译验证
/* 按指定传输编码解码消息正文;原样编码允许同址写入。 */ result = xrtMailMessageBodyWrite(pMessage, Transfer, iFlags, pOutput, iCapacity, pOutputSize);
xrtMailMessageBody
解码正文并返回由 xrtFree 释放的字节;末尾附加零但不计入长度。
bytes xrtMailMessageBody( const xmailmessageview* pMessage, xmailtransfer Transfer, uint32 iFlags, size_t* pOutputSize );
| 参数 | 说明 |
|---|---|
| const xmailmessageview* pMessage | 出:消息 |
| xmailtransfer Transfer | Transfer 参数 |
| uint32 iFlags | 标志位 |
| size_t* pOutputSize | 出:输出长度 |
返回:解码正文并返回由 xrtFree 释放的字节;末尾附加零但不计入长度。
示例已编译验证
/* 解码正文并返回由 xrtFree 释放的字节;末尾附加零但不计入长度。 */ result = xrtMailMessageBody(pMessage, Transfer, iFlags, pOutputSize);