# Object - IMAP 邮件收取

## `IMAP`

声明：class

用于连接 IMAP 服务器、管理邮箱并读取邮件的内置对象

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 创建 生成 构造函数 实例化 new -->

### `create()`

声明：function

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

<!-- tags: Object IMAP 邮件收取 创建 生成 对象 实例 邮件 SMTP POP3 -->

可见性：public

### `create(host, user_name, password)`

声明：function

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

<!-- tags: Object IMAP 邮件收取 创建 生成 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数        | 类型   | 说明                                          |
| ----------- | ------ | --------------------------------------------- |
| `host`      | string | IMAP 配置名称。指定后从配置文件读取服务器参数 |
| `user_name` | string | 登录用户名                                    |
| `password`  | string | 登录密码                                      |

### `appendMessage(folder_name, msg)`

声明：function

添加邮件至指定文件夹

<!-- tags: Object IMAP 邮件收取 添加 追加 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数          | 类型    | 说明                 |
| ------------- | ------- | -------------------- |
| `folder_name` | string  | 目标文件夹名称       |
| `msg`         | MailMsg | 要添加的邮件消息对象 |

返回：boolean

### `capa()`

声明：function

获取服务器的支持命令列表

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

返回：string

#### 示例

```tsl
//创建imap对象
imapObj := new imap("imap.tinysoft.com.cn", "username", "password");
imapObj.Login();
ret := imapObj.CAPA();
imapObj.Logout();
return ret;
```

### `checkMessages(folder_name)`

声明：function

判断查看邮箱文件夹邮件数量

<!-- tags: Object IMAP 邮件收取 判断 检查 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数          | 类型   | 说明                                                       |
| ------------- | ------ | ---------------------------------------------------------- |
| `folder_name` | string | 可选。邮箱文件夹名称；若未指定，默认获取收件箱中的邮件数量 |

返回：integer

### `copyMessage(folder_name, msg_id, dest_folder_name)`

声明：function

复制邮件至目标文件夹

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数               | 类型    | 说明           |
| ------------------ | ------- | -------------- |
| `folder_name`      | string  | 源文件夹名称   |
| `msg_id`           | integer | 邮件编号       |
| `dest_folder_name` | string  | 目标文件夹名称 |

返回：boolean

### `createFolder(folder_name)`

声明：function

创建邮箱文件夹

<!-- tags: Object IMAP 邮件收取 创建 生成 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数          | 类型   | 说明       |
| ------------- | ------ | ---------- |
| `folder_name` | string | 文件夹名称 |

返回：boolean

#### 示例

```tsl
//创建imap对象
imapObj := new imap("imap.tinysoft.com.cn", "username", "password");
imapObj.Login();
ret := imapObj.CreateFolder("IMAP_Test");//创建IMAP_Test文件夹
imapObj.Logout();
return ret;//创建成功，返回1
```

### `deleteFolder(folder_name)`

声明：function

删除指定邮件文件夹

<!-- tags: Object IMAP 邮件收取 删除 移除 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数          | 类型   | 说明                   |
| ------------- | ------ | ---------------------- |
| `folder_name` | string | 要删除的邮箱文件夹名称 |

返回：boolean

### `keepAlive()`

声明：function

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

<!-- tags: Object IMAP 邮件收取 发送 提交 对象 实例 邮件 SMTP POP3 -->

可见性：public

返回：any

### `listFolders(reference, mail_box)`

声明：function

获取邮箱文件夹的列表信息

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数        | 类型   | 说明                                               |
| ----------- | ------ | -------------------------------------------------- |
| `reference` | string | 查询参考，即邮箱前缀，如"mybox/"、"mybox"等        |
| `mail_box`  | string | 邮箱名称，可带*或%通配符，如"*"、"sub*"等，默认"*" |

返回：array

#### 示例

```tsl
//创建imap对象
imapObj := new imap("imap.tinysoft.com.cn", "username", "password");
imapObj.Login();
ret := imapObj.ListFolders("","INBOX");
imapObj.Logout();
return ret;
```

### `login()`

声明：function

登录，调用前必须先设置Host、Port、Username、Password属性

<!-- tags: Object IMAP 邮件收取 连接 登录 对象 实例 邮件 SMTP POP3 -->

可见性：public

返回：any

### `logout()`

声明：function

退出登录

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 -->

可见性：public

返回：any

### `renameFolder(folder_name, new_folder_name)`

声明：function

重命名邮箱文件夹

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数              | 类型   | 说明             |
| ----------------- | ------ | ---------------- |
| `folder_name`     | string | 原邮箱文件夹名称 |
| `new_folder_name` | string | 新邮箱文件夹名称 |

返回：boolean

### `retrieveMailBoxSize(folder_name)`

声明：function

RetrieveMailBoxSize

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 -->

可见性：public

| 参数          | 类型 | 说明        |
| ------------- | ---- | ----------- |
| `folder_name` | any  | folder_name |

返回：integer

### `AuthType`

声明：property

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

<!-- tags: Object IMAP 邮件收取 摘要 哈希 散列 digest hash 对象 实例 邮件 SMTP -->

可见性：public

类型：integer

访问：read/write

### `AuthTypeString`

声明：property

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

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 AUTH -->

可见性：public

类型：string

访问：read/write

### `Host`

声明：property

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

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

类型：string

访问：read/write

### `LastCmdResult`

声明：property

获取最后的命令执行结果

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

类型：string

访问：read

### `LastCmdResultCode`

声明：property

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

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

类型：string

访问：read

### `Password`

声明：property

获取或设置密码

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

类型：string

访问：read/write

### `Port`

声明：property

获取或设置主机端口

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

类型：integer

访问：read/write

### `Username`

声明：property

获取或设置用户名

<!-- tags: Object IMAP 邮件收取 获取 查询 对象 实例 邮件 SMTP POP3 -->

可见性：public

类型：string

访问：read/write

### `UseSTARTTLS`

声明：property

控制是否使用显式 TLS（即 STARTTLS 加密协议）

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 TLS STARTTLS -->

可见性：public

类型：boolean

访问：read/write

### `UseTLS`

声明：property

控制是否采用SSL连接

<!-- tags: Object IMAP 邮件收取 对象 实例 邮件 SMTP POP3 SSL -->

可见性：public

类型：boolean

访问：read/write
