xrtMailMessageParse

严格解析 RFC 消息的字段块与正文,并在发布结果前验证全部字段。

bool xrtMailMessageParse( xstrview Source, size_t iMaxHeaderBytes, size_t iMaxHeaders, xmailmessageview* pMessage );
参数说明
xstrview SourceSource 参数
size_t iMaxHeaderBytesMaxHeaderBytes 参数
size_t iMaxHeadersMaxHeaders 参数
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 iOccurrenceOccurrence 参数
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* pTransferTransfer 参数
返回:返回消息正文的传输编码;字段缺失时按标准返回 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 TransferTransfer 参数
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 TransferTransfer 参数
uint32 iFlags标志位
size_t* pOutputSize出:输出长度
返回:解码正文并返回由 xrtFree 释放的字节;末尾附加零但不计入长度。

示例已编译验证

/* 解码正文并返回由 xrtFree 释放的字节;末尾附加零但不计入长度。 */
result = xrtMailMessageBody(pMessage, Transfer, iFlags, pOutputSize);