xrtImapClientConfigInit
初始化 IMAP 143 端口、64 KiB 命令/响应行和 XRT 网络默认值。
| 参数 | 说明 |
|---|---|
| ximapclientconfig* pConfig | 配置结构 |
示例已编译验证
imapclientconfiginit obj; xrtImapClientConfigInit(&obj);
xrtImapClientConfigValid
验证网络所有者、线路上限和命令上限。
| 参数 | 说明 |
|---|---|
| const ximapclientconfig* pConfig | 配置结构 |
示例已编译验证
/* 验证网络所有者、线路上限和命令上限。 */ result = xrtImapClientConfigValid(pConfig);
xrtImapClientOpen
建立连接,读取 greeting,完成 CAPABILITY 和可选 STARTTLS。
| 参数 | 说明 |
|---|---|
| const ximapclientconfig* pConfig | 配置结构 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 建立连接,读取 greeting,完成 CAPABILITY 和可选 STARTTLS。 */ result = xrtImapClientOpen(pConfig, iDeadline, pCancel);
xrtImapClientState
返回当前 IMAP 协议层级或终态。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 返回当前 IMAP 协议层级或终态。 */ result = xrtImapClientState(pClient);
xrtImapClientCapabilities
返回最近一次 CAPABILITY 快照中的已知能力位。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 返回最近一次 CAPABILITY 快照中的已知能力位。 */ result = xrtImapClientCapabilities(pClient);
xrtImapClientSecurity
返回当前会话实际使用的明文或 TLS 传输安全级别。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 返回当前会话实际使用的明文或 TLS 传输安全级别。 */ result = xrtImapClientSecurity(pClient);
xrtImapClientTag
返回顺序命令当前使用的自动 tag;没有活动命令时返回空视图。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 返回顺序命令当前使用的自动 tag;没有活动命令时返回空视图。 */ result = xrtImapClientTag(pClient);
xrtImapClientLiteralRemaining
返回当前服务器 literal 尚未读取的字节数。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 返回当前服务器 literal 尚未读取的字节数。 */ result = xrtImapClientLiteralRemaining(pClient);
xrtImapClientCommandLimit
返回当前命令行总长度上限。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 返回当前命令行总长度上限。 */ result = xrtImapClientCommandLimit(pClient);
xrtImapClientAppendLimit
返回 CAPABILITY 声明的全局 APPEND 上限,未知或按邮箱决定时返回 UNKNOWN。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 返回 CAPABILITY 声明的全局 APPEND 上限,未知或按邮箱决定时返回 UNKNOWN。 */ result = xrtImapClientAppendLimit(pClient);
xrtImapClientLastResponse
返回最近 greeting 或 tagged completion 的稳定借用视图。
| 参数 | 说明 |
|---|---|
| const ximapclient* pClient | 客户端对象 |
| ximapresponseview* pResponse | 响应对象 |
示例已编译验证
/* 返回最近 greeting 或 tagged completion 的稳定借用视图。 */ result = xrtImapClientLastResponse(pClient, pResponse);
xrtImapClientSend
XRT_API bool xrtImapClientSend( ximapclient* pClient, xstrview Tag, xstrview Command, xstrview Arguments, xdeadline iDeadline, xcancel* pCancel );
示例已编译验证
/* XRT_API bool xrtImapClientSend( ximapclient* pClient, xstrview Tag, xstrview Command, xstrview Arguments, xdeadline iDeadline, xcancel* pCancel ); */ result = xrtImapClientSend();
xrtImapClientSendParts
XRT_API bool xrtImapClientSendParts( ximapclient* pClient, xstrview Tag, xstrview Command, const xstrview* pArguments, size_t iCount, xdeadline iDeadline, xcancel* pCancel );
示例已编译验证
/* XRT_API bool xrtImapClientSendParts( ximapclient* pClient, xstrview Tag, xstrview Command, const xstrview* pArguments, size_t iCount, xdeadline iDeadline, xcancel* pCancel ); */ result = xrtImapClientSendParts();
xrtImapClientWrite
发送原始命令续传字节,用于 APPEND literal 等协议扩展。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| const void* pData | 用户数据 |
| size_t iSize | 字节数 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 发送原始命令续传字节,用于 APPEND literal 等协议扩展。 */ result = xrtImapClientWrite(pClient, pData, iSize, iDeadline, pCancel);
xrtImapClientContinue
发送一条不带 tag 的 continuation 数据并自动追加 CRLF。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| xstrview Data | 数据内容 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 发送一条不带 tag 的 continuation 数据并自动追加 CRLF。 */ result = xrtImapClientContinue(pClient, Data, iDeadline, pCancel);
xrtImapClientReceive
XRT_API bool xrtImapClientReceive( ximapclient* pClient, ximapevent* pEvent, xdeadline iDeadline, xcancel* pCancel );
示例已编译验证
/* XRT_API bool xrtImapClientReceive( ximapclient* pClient, ximapevent* pEvent, xdeadline iDeadline, xcancel* pCancel ); */ result = xrtImapClientReceive();
xrtImapClientReadLiteral
把当前 literal 的下一段读入调用方缓冲区,Read 返回实际读取量。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| void* pBuffer | 缓冲区 |
| size_t iCapacity | 容量 |
| size_t* pRead | Read 参数 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 把当前 literal 的下一段读入调用方缓冲区,Read 返回实际读取量。 */ result = xrtImapClientReadLiteral(pClient, pBuffer, iCapacity, pRead, iDeadline, pCancel);
xrtImapClientBegin
生成唯一 tag 并开始一个顺序命令。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| xstrview Command | 命令文本 |
| xstrview Arguments | 命令参数 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 生成唯一 tag 并开始一个顺序命令。 */ result = xrtImapClientBegin(pClient, Command, Arguments, iDeadline, pCancel);
xrtImapClientBeginParts
生成唯一 tag 并以零拼接方式开始多参数顺序命令。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| xstrview Command | 命令文本 |
| const xstrview* pArguments | 命令参数 |
| size_t iCount | 数量 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 生成唯一 tag 并以零拼接方式开始多参数顺序命令。 */ result = xrtImapClientBeginParts(pClient, Command, pArguments, iCount, iDeadline, pCancel);
xrtImapClientNext
XRT_API xmailnext xrtImapClientNext( ximapclient* pClient, ximapevent* pEvent, xdeadline iDeadline, xcancel* pCancel );
示例已编译验证
/* XRT_API xmailnext xrtImapClientNext( ximapclient* pClient, ximapevent* pEvent, xdeadline iDeadline, xcancel* pCancel ); */ result = xrtImapClientNext();
xrtImapClientRefresh
在没有活动顺序命令时重新获取并替换 CAPABILITY 快照。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 在没有活动顺序命令时重新获取并替换 CAPABILITY 快照。 */ result = xrtImapClientRefresh(pClient, iDeadline, pCancel);
xrtImapClientLogout
发送 LOGOUT,消费 BYE 和 tagged completion,并正常关闭传输。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 发送 LOGOUT,消费 BYE 和 tagged completion,并正常关闭传输。 */ result = xrtImapClientLogout(pClient, iDeadline, pCancel);
xrtImapClientClose
不发送 LOGOUT,直接正常关闭传输。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
| xdeadline iDeadline | 截止时间 |
示例已编译验证
/* 不发送 LOGOUT,直接正常关闭传输。 */ result = xrtImapClientClose(pClient, iDeadline);
xrtImapClientAbort
立即异常中止连接;重复调用成功,FAILED 状态保留到销毁。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
示例已编译验证
/* 立即异常中止连接;重复调用成功,FAILED 状态保留到销毁。 */ result = xrtImapClientAbort(pClient);
xrtImapClientDestroy
释放客户端;尚未关闭时执行异常中止。
| 参数 | 说明 |
|---|---|
| ximapclient* pClient | 客户端对象 |
示例已编译验证
xrtImapClientDestroy(pClient);