Files
playbook/skills/tsl-api-reference/references/codegen/builtin/object/pop3.md
T

12 KiB

Object - Pop3 邮件接收

Pop3

声明:class

用于连接 POP3 服务器并读取或删除邮件的内置对象

下列范例使用本机 127.0.0.1:42110 的临时 POP3 测试服务

测试账号为 tsl_usertsl_pass,服务器需支持 APOP 认证

create()

声明:function

无参数构造函数。创建 Pop3 实例,连接和认证参数由实例属性设置

可见性:public

create(host, user_name, password)

声明:function

构造函数。按 host、user_name 和 password 初始化 Pop3 实例

可见性:public

参数 类型 说明
host string Pop3 配置名称。指定后从配置文件读取服务器参数并自动连接
user_name string 登录用户名
password string 登录密码

capa()

声明:function

取服务器的支持命令列表

可见性:public

返回:string

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
obj.connect();
echo obj.capa();
obj.disconnect();
// 输出:
// USER
// TOP
// UIDL
// IMPLEMENTATION TSL test

checkMessages()

声明:function

返回邮件的个数

可见性:public

返回:integer

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
obj.connect();
echo obj.checkMessages();
obj.disconnect();
// 输出:1

connect()

声明:function

连接服务器

可见性:public

返回:any

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
echo obj.connect(), "\n";
echo obj.checkMessages(), "\n";
obj.disconnect();
// 输出:
// 0
// 1

delete(msg_id)

声明:function

删除指定的邮件,返回删除是否正确

可见性:public

参数 类型 说明
msg_id any msg_id

返回:boolean

disconnect()

声明:function

断开连接

可见性:public

返回:any

disconnectNotifyPeer()

声明:function

断开并且通知服务器

可见性:public

返回:any

keepAlive()

声明:function

发送空指令保持服务的连接

可见性:public

返回:any

login()

声明:function

连接登录,此前必须制定Username和Password属性

可见性:public

返回:any

reset()

声明:function

复位,撤销所有本次会话中的删除操作

可见性:public

返回:boolean

retrieve(msg_id, msg)

声明:function

取邮件的内容

可见性:public

参数 类型 说明
msg_id integer 邮件ID
msg TSLObj 获取成功时返回的邮件内容,具体类型可参考FAQ: MailMsg对象

返回:boolean

retrieveHeader(msg_id, msg)

声明:function

取邮件的内容,仅仅取邮件的头部信息,不取附件等内容

可见性:public

参数 类型 说明
msg_id integer 邮件ID
msg TSLObj 获取成功时返回的邮件头部信息,具体类型可参考FAQ: MailMsg对象

返回:boolean

retrieveMailBoxSize()

声明:function

获取邮箱的大小

可见性:public

返回:integer

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
obj.connect();
echo obj.retrieveMailBoxSize();
obj.disconnect();
// 输出:138

retrieveMsgSize(msg_id)

声明:function

取指定邮件的大小

可见性:public

参数 类型 说明
msg_id integer 指定邮件序号

返回:integer

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
obj.connect();
echo obj.retrieveMsgSize(1);
obj.disconnect();
// 输出:138

retrieveRaw(msg_id, msg_content)

声明:function

取邮件的原始内容

可见性:public

参数 类型 说明
msg_id integer 邮件ID
msg_content string 获取成功时返回的原始邮件内容

返回:boolean

sendCmd(cmd, cmd_result, ret_code)

声明:function

发送命令

可见性:public

参数 类型 说明
cmd string 字符串类型,发送的命令
cmd_result string 可选。返回的结果串
ret_code string 可选。返回的代码串

返回:integer

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
obj.connect();
echo obj.sendCmd("UIDL 1", cmd_result, ret_code);
obj.disconnect();
// 输出:0

top(msg_id, result, max_lines)

声明:function

转换取邮件的前N行内容

可见性:public

参数 类型 说明
msg_id integer 指定邮件序号
result string 指定邮件内容返回值
max_lines integer 获取指定邮件前MaxLines行的内容

返回:boolean

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
obj.connect();
obj.top(1, msg, 3);
echo msg;
obj.disconnect();
// 输出:
// From: sender@example.test
// To: recipient@example.test
// Subject: TSL POP3 test
// Message-ID: <tsl-pop3@example.test>
//
// line one
// line two

uidl(ids)

声明:function

取服务器的邮件唯一标示列表

可见性:public

参数 类型 说明
ids string 字符串,存放获取到的标示列表

返回:boolean

示例

obj := new Pop3();
obj.host := "127.0.0.1";
obj.port := 42110;
obj.username := "tsl_user";
obj.password := "tsl_pass";
obj.useTLS := false;
obj.authType := 1;
obj.connect();
obj.uidl(ids);
echo ids;
obj.disconnect();
// 输出:1 tsl-message-1

AuthType

声明:property

认证类型,0:明文用户密码,1:MD5,2:SASL认证,-1:自定义认证

可见性:public

类型:integer

访问:read/write

AuthTypeString

声明:property

自定义认证类型,仅当 AuthType 设置为-1时有效;设置为"AUTH=*":自动选择服务器支持的认证类型;多个用分号连接

可见性:public

类型:string

访问:read/write

AutoLogin

声明:property

控制是否在连接的时候自动登录

可见性:public

类型:boolean

访问:read/write

Capabilities

声明:property

获取取服务器的支持命令列表(不重新发送命令)

可见性:public

类型:string

访问:read

HasAPOP

声明:property

指示是否是MD5认证

可见性:public

类型:boolean

访问:read

HasCAPA

声明:property

指示是否执行过CAPA命令

可见性:public

类型:boolean

访问:read

Host

声明:property

获取或设置主机名称或地址

可见性:public

类型:string

访问:read/write

LastCmdResult

声明:property

获取最后的命令执行结果

可见性:public

类型:string

访问:read

LastCmdResultCode

声明:property

获取最后的命令执行的返回码

可见性:public

类型:string

访问:read

Password

声明:property

获取或设置密码

可见性:public

类型:string

访问:read/write

Port

声明:property

获取或设置主机端口

可见性:public

类型:integer

访问:read/write

Username

声明:property

获取或设置用户名

可见性:public

类型:string

访问:read/write

UseSTARTTLS

声明:property

控制是否使用显式 TLS(即 STARTTLS 加密协议)

可见性:public

类型:boolean

访问:read/write

UseTLS

声明:property

控制是否采用SSL连接

可见性:public

类型:boolean

访问:read/write