12 KiB
Object - Pop3 邮件接收
Pop3
声明:class
用于连接 POP3 服务器并读取或删除邮件的内置对象
下列范例使用本机 127.0.0.1:42110 的临时 POP3 测试服务
测试账号为 tsl_user 和 tsl_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