xrtPop3ClientConfigInit

初始化明文 110 端口并默认读取 CAPA。

void xrtPop3ClientConfigInit(xpop3clientconfig* pConfig);
参数说明
xpop3clientconfig* pConfig配置结构
返回:初始化明文 110 端口并默认读取 CAPA。

示例已编译验证

pop3clientconfiginit obj;
xrtPop3ClientConfigInit(&obj);

xrtPop3ClientConfigValid

验证网络配置和 STLS 所需的能力读取设置。

bool xrtPop3ClientConfigValid(const xpop3clientconfig* pConfig);
参数说明
const xpop3clientconfig* pConfig配置结构
返回:验证网络配置和 STLS 所需的能力读取设置。

示例已编译验证

/* 验证网络配置和 STLS 所需的能力读取设置。 */
result = xrtPop3ClientConfigValid(pConfig);

xrtPop3ClientOpen

建立连接,验证 greeting,读取 CAPA 并按需完成 STLS。

xpop3client* xrtPop3ClientOpen( const xpop3clientconfig* pConfig, xdeadline iDeadline, xcancel* pCancel );
参数说明
const xpop3clientconfig* pConfig配置结构
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:建立连接,验证 greeting,读取 CAPA 并按需完成 STLS。

示例已编译验证

/* 建立连接,验证 greeting,读取 CAPA 并按需完成 STLS。 */
result = xrtPop3ClientOpen(pConfig, iDeadline, pCancel);

xrtPop3ClientState

返回当前 POP3 状态。

xpop3clientstate xrtPop3ClientState(const xpop3client* pClient);
参数说明
const xpop3client* pClient客户端对象
返回:返回当前 POP3 状态。

示例已编译验证

/* 返回当前 POP3 状态。 */
result = xrtPop3ClientState(pClient);

xrtPop3ClientCapabilities

返回最近一次 CAPA 的已知能力位集。

uint32 xrtPop3ClientCapabilities(const xpop3client* pClient);
参数说明
const xpop3client* pClient客户端对象
返回:返回最近一次 CAPA 的已知能力位集。

示例已编译验证

/* 返回最近一次 CAPA 的已知能力位集。 */
result = xrtPop3ClientCapabilities(pClient);

xrtPop3ClientSaslMechanisms

返回最近一次 CAPA 中 SASL 参数列出的已知认证机制。

uint32 xrtPop3ClientSaslMechanisms(const xpop3client* pClient);
参数说明
const xpop3client* pClient客户端对象
返回:返回最近一次 CAPA 中 SASL 参数列出的已知认证机制。

示例已编译验证

/* 返回最近一次 CAPA 中 SASL 参数列出的已知认证机制。 */
result = xrtPop3ClientSaslMechanisms(pClient);

xrtPop3ClientSecurity

返回当前会话实际使用的传输安全级别。

xmailsecurity xrtPop3ClientSecurity(const xpop3client* pClient);
参数说明
const xpop3client* pClient客户端对象
返回:返回当前会话实际使用的传输安全级别。

示例已编译验证

/* 返回当前会话实际使用的传输安全级别。 */
result = xrtPop3ClientSecurity(pClient);

xrtPop3ClientLastReply

取得最近状态行的稳定借用视图。

bool xrtPop3ClientLastReply( const xpop3client* pClient, xpop3reply* pReply );
参数说明
const xpop3client* pClient客户端对象
xpop3reply* pReply回复队列
返回:取得最近状态行的稳定借用视图。

示例已编译验证

/* 取得最近状态行的稳定借用视图。 */
result = xrtPop3ClientLastReply(pClient, pReply);

xrtPop3ClientSend

发送一条不含 CRLF 的低层 POP3 行。

bool xrtPop3ClientSend( xpop3client* pClient, xstrview Line, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xstrview LineLne 参数
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:发送一条不含 CRLF 的低层 POP3 行。

示例已编译验证

/* 发送一条不含 CRLF 的低层 POP3 行。 */
result = xrtPop3ClientSend(pClient, Line, iDeadline, pCancel);

xrtPop3ClientAuthLine

发送可超过普通命令上限的 SASL 响应或取消行。

bool xrtPop3ClientAuthLine( xpop3client* pClient, xstrview Line, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xstrview LineLne 参数
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:发送可超过普通命令上限的 SASL 响应或取消行。

示例已编译验证

/* 发送可超过普通命令上限的 SASL 响应或取消行。 */
result = xrtPop3ClientAuthLine(pClient, Line, iDeadline, pCancel);

xrtPop3ClientLine

读取一条不含 CRLF 的原始线路,用于 SASL continuation 等扩展。

bool xrtPop3ClientLine( xpop3client* pClient, xstrview* pLine, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xstrview* pLine行
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:读取一条不含 CRLF 的原始线路,用于 SASL continuation 等扩展。

示例已编译验证

/* 读取一条不含 CRLF 的原始线路,用于 SASL continuation 等扩展。 */
result = xrtPop3ClientLine(pClient, pLine, iDeadline, pCancel);

xrtPop3ClientReceive

读取并验证一条 +OK 或 -ERR 状态行。

bool xrtPop3ClientReceive( xpop3client* pClient, xpop3reply* pReply, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xpop3reply* pReply回复队列
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:读取并验证一条 +OK 或 -ERR 状态行。

示例已编译验证

/* 读取并验证一条 +OK 或 -ERR 状态行。 */
result = xrtPop3ClientReceive(pClient, pReply, iDeadline, pCancel);

xrtPop3ClientCommand

构建并发送命令,然后读取状态行。

bool xrtPop3ClientCommand( xpop3client* pClient, xstrview Verb, xstrview Arguments, xpop3reply* pReply, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xstrview VerbVerb 参数
xstrview Arguments命令参数
xpop3reply* pReply回复队列
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:构建并发送命令,然后读取状态行。

示例已编译验证

/* 构建并发送命令,然后读取状态行。 */
result = xrtPop3ClientCommand(pClient, Verb, Arguments, pReply, iDeadline, pCancel);

xrtPop3ClientBegin

发送预期多行数据的命令;+OK 后进入 MULTILINE。

bool xrtPop3ClientBegin( xpop3client* pClient, xstrview Verb, xstrview Arguments, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xstrview VerbVerb 参数
xstrview Arguments命令参数
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:发送预期多行数据的命令;+OK 后进入 MULTILINE。

示例已编译验证

/* 发送预期多行数据的命令;+OK 后进入 MULTILINE。 */
result = xrtPop3ClientBegin(pClient, Verb, Arguments, iDeadline, pCancel);

xrtPop3ClientNext

逐行去除 dot transparency;END 自动恢复命令前状态。

xmailnext xrtPop3ClientNext( xpop3client* pClient, xstrview* pLine, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xstrview* pLine行
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:逐行去除 dot transparency;END 自动恢复命令前状态。

示例已编译验证

/* 逐行去除 dot transparency;END 自动恢复命令前状态。 */
result = xrtPop3ClientNext(pClient, pLine, iDeadline, pCancel);

xrtPop3ClientStat

查询邮箱消息数量和总字节数。

bool xrtPop3ClientStat( xpop3client* pClient, xpop3stat* pStat, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xpop3stat* pStatStat 参数
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:查询邮箱消息数量和总字节数。

示例已编译验证

/* 查询邮箱消息数量和总字节数。 */
result = xrtPop3ClientStat(pClient, pStat, iDeadline, pCancel);

xrtPop3ClientList

查询一条消息的 LIST 大小。

bool xrtPop3ClientList( xpop3client* pClient, uint64 iMessage, xpop3listview* pItem, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
uint64 iMessage消息文本
xpop3listview* pItem元素
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:查询一条消息的 LIST 大小。

示例已编译验证

/* 查询一条消息的 LIST 大小。 */
result = xrtPop3ClientList(pClient, iMessage, pItem, iDeadline, pCancel);

xrtPop3ClientListAll

开始流式读取全部 LIST 项。

bool xrtPop3ClientListAll( xpop3client* pClient, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:开始流式读取全部 LIST 项。

示例已编译验证

/* 开始流式读取全部 LIST 项。 */
result = xrtPop3ClientListAll(pClient, iDeadline, pCancel);

xrtPop3ClientUidl

查询一条消息的 UIDL。

bool xrtPop3ClientUidl( xpop3client* pClient, uint64 iMessage, xpop3uidlview* pItem, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
uint64 iMessage消息文本
xpop3uidlview* pItem元素
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:查询一条消息的 UIDL。

示例已编译验证

/* 查询一条消息的 UIDL。 */
result = xrtPop3ClientUidl(pClient, iMessage, pItem, iDeadline, pCancel);

xrtPop3ClientUidlAll

开始流式读取全部 UIDL 项。

bool xrtPop3ClientUidlAll( xpop3client* pClient, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:开始流式读取全部 UIDL 项。

示例已编译验证

/* 开始流式读取全部 UIDL 项。 */
result = xrtPop3ClientUidlAll(pClient, iDeadline, pCancel);

xrtPop3ClientRetr

开始流式读取一封完整邮件。

bool xrtPop3ClientRetr( xpop3client* pClient, uint64 iMessage, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
uint64 iMessage消息文本
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:开始流式读取一封完整邮件。

示例已编译验证

/* 开始流式读取一封完整邮件。 */
result = xrtPop3ClientRetr(pClient, iMessage, iDeadline, pCancel);

xrtPop3ClientTop

开始流式读取邮件字段和指定数量的正文行。

bool xrtPop3ClientTop( xpop3client* pClient, uint64 iMessage, uint64 iLines, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
uint64 iMessage消息文本
uint64 iLinesLnes 参数
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:开始流式读取邮件字段和指定数量的正文行。

示例已编译验证

/* 开始流式读取邮件字段和指定数量的正文行。 */
result = xrtPop3ClientTop(pClient, iMessage, iLines, iDeadline, pCancel);

xrtPop3ClientDelete

标记一条消息在 UPDATE 阶段删除。

bool xrtPop3ClientDelete( xpop3client* pClient, uint64 iMessage, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
uint64 iMessage消息文本
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:标记一条消息在 UPDATE 阶段删除。

示例已编译验证

/* 标记一条消息在 UPDATE 阶段删除。 */
result = xrtPop3ClientDelete(pClient, iMessage, iDeadline, pCancel);

xrtPop3ClientReset

清除当前会话的删除标记。

bool xrtPop3ClientReset( xpop3client* pClient, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:清除当前会话的删除标记。

示例已编译验证

/* 清除当前会话的删除标记。 */
result = xrtPop3ClientReset(pClient, iDeadline, pCancel);

xrtPop3ClientNoop

验证事务连接仍可交换命令。

bool xrtPop3ClientNoop( xpop3client* pClient, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:验证事务连接仍可交换命令。

示例已编译验证

/* 验证事务连接仍可交换命令。 */
result = xrtPop3ClientNoop(pClient, iDeadline, pCancel);

xrtPop3ClientQuit

发送 QUIT,验证成功状态并认证关闭传输。

bool xrtPop3ClientQuit( xpop3client* pClient, xdeadline iDeadline, xcancel* pCancel );
参数说明
xpop3client* pClient客户端对象
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:发送 QUIT,验证成功状态并认证关闭传输。

示例已编译验证

/* 发送 QUIT,验证成功状态并认证关闭传输。 */
result = xrtPop3ClientQuit(pClient, iDeadline, pCancel);

xrtPop3ClientClose

不发送 QUIT,直接正常关闭传输。

bool xrtPop3ClientClose( xpop3client* pClient, xdeadline iDeadline );
参数说明
xpop3client* pClient客户端对象
xdeadline iDeadline截止时间
返回:不发送 QUIT,直接正常关闭传输。

示例已编译验证

/* 不发送 QUIT,直接正常关闭传输。 */
result = xrtPop3ClientClose(pClient, iDeadline);

xrtPop3ClientAbort

立即异常中止连接;重复调用成功,FAILED 状态保留到销毁。

bool xrtPop3ClientAbort(xpop3client* pClient);
参数说明
xpop3client* pClient客户端对象
返回:立即异常中止连接;重复调用成功,FAILED 状态保留到销毁。

示例已编译验证

/* 立即异常中止连接;重复调用成功,FAILED 状态保留到销毁。 */
result = xrtPop3ClientAbort(pClient);

xrtPop3ClientDestroy

释放客户端;尚未关闭时执行异常中止。

void xrtPop3ClientDestroy(xpop3client* pClient);
参数说明
xpop3client* pClient客户端对象
返回:释放客户端;尚未关闭时执行异常中止。

示例已编译验证

xrtPop3ClientDestroy(pClient);