xrtMailLineRead

XRT_API xmailnext xrtMailLineRead( xstrview Data, size_t iMaxLine, xstrview* pLine, size_t* pConsumed );

;
返回:XRT_API xmailnext xrtMailLineRead( xstrview Data, size_t iMaxLine, xstrview* pLine, size_t* pConsumed );

示例已编译验证

/* XRT_API xmailnext xrtMailLineRead( xstrview Data, size_t iMaxLine, xstrview* pLine, size_t* pConsumed ); */
result = xrtMailLineRead();

xrtMailDotLine

对一条已去除 CRLF 的 dot-transparent 行去转义;单点终止行返回 END。

xmailnext xrtMailDotLine(xstrview Line, xstrview* pData);
参数说明
xstrview LineLne 参数
xstrview* pData用户数据
返回:对一条已去除 CRLF 的 dot-transparent 行去转义;单点终止行返回 END。

示例已编译验证

/* 对一条已去除 CRLF 的 dot-transparent 行去转义;单点终止行返回 END。 */
result = xrtMailDotLine(Line, pData);

xrtMailDotWriterInit

初始化可接收任意分块边界的增量 dot writer。

bool xrtMailDotWriterInit(xmaildotwriter* pWriter);
参数说明
xmaildotwriter* pWriter写入器
返回:初始化可接收任意分块边界的增量 dot writer。

示例已编译验证

maildotwriterinit obj;
xrtMailDotWriterInit(&obj, pWriter);

xrtMailDotWriterWrite

校验严格 CRLF 并向 sink 写出一个 dot-transparent 输入片段。

bool xrtMailDotWriterWrite( xmaildotwriter* pWriter, xbytesview Data, xmailwriteproc pWrite, ptr pUserData );
参数说明
xmaildotwriter* pWriter写入器
xbytesview Data数据内容
xmailwriteproc pWrite写入回调
ptr pUserData透传用户数据
返回:校验严格 CRLF 并向 sink 写出一个 dot-transparent 输入片段。

示例已编译验证

/* 校验严格 CRLF 并向 sink 写出一个 dot-transparent 输入片段。 */
result = xrtMailDotWriterWrite(pWriter, Data, pWrite, pUserData);

xrtMailDotWriterFinish

补足最后一行并写出 SMTP/POP3 点终止行。

bool xrtMailDotWriterFinish( xmaildotwriter* pWriter, xmailwriteproc pWrite, ptr pUserData );
参数说明
xmaildotwriter* pWriter写入器
xmailwriteproc pWrite写入回调
ptr pUserData透传用户数据
返回:补足最后一行并写出 SMTP/POP3 点终止行。

示例已编译验证

/* 补足最后一行并写出 SMTP/POP3 点终止行。 */
result = xrtMailDotWriterFinish(pWriter, pWrite, pUserData);

xrtMailDotWrite

XRT_API bool xrtMailDotWrite( xstrview Data, bool Terminate, void* pOutput, size_t iCapacity, size_t* pOutputSize );

;
返回:XRT_API bool xrtMailDotWrite( xstrview Data, bool Terminate, void* pOutput, size_t iCapacity, size_t* pOutputSize );

示例已编译验证

/* XRT_API bool xrtMailDotWrite( xstrview Data, bool Terminate, void* pOutput, size_t iCapacity, size_t* pOutputSize ); */
result = xrtMailDotWrite();

xrtMailDot

创建由 xrtFree 释放的 dot-transparent 字节。

bytes xrtMailDot( xstrview Data, bool Terminate, size_t* pOutputSize );
参数说明
xstrview Data数据内容
bool TerminateTermnate 参数
size_t* pOutputSize出:输出长度
返回:创建由 xrtFree 释放的 dot-transparent 字节。

示例已编译验证

/* 创建由 xrtFree 释放的 dot-transparent 字节。 */
result = xrtMailDot(Data, Terminate, pOutputSize);

xrtMailDotDecodeWrite

解码完整的 dot-transparent 行块;可要求最后一行必须是终止行。

bool xrtMailDotDecodeWrite( xstrview Data, bool RequireTerminator, void* pOutput, size_t iCapacity, size_t* pOutputSize );
参数说明
xstrview Data数据内容
bool RequireTerminatorRequreTermnator 参数
void* pOutput出:输出缓冲
size_t iCapacity容量
size_t* pOutputSize出:输出长度
返回:解码完整的 dot-transparent 行块;可要求最后一行必须是终止行。

示例已编译验证

/* 解码完整的 dot-transparent 行块;可要求最后一行必须是终止行。 */
result = xrtMailDotDecodeWrite(Data, RequireTerminator, pOutput, iCapacity, pOutputSize);

xrtMailDotDecode

创建由 xrtFree 释放的去转义字节。

bytes xrtMailDotDecode( xstrview Data, bool RequireTerminator, size_t* pOutputSize );
参数说明
xstrview Data数据内容
bool RequireTerminatorRequreTermnator 参数
size_t* pOutputSize出:输出长度
返回:创建由 xrtFree 释放的去转义字节。

示例已编译验证

/* 创建由 xrtFree 释放的去转义字节。 */
result = xrtMailDotDecode(Data, RequireTerminator, pOutputSize);