429 lines
8.4 KiB
Markdown
429 lines
8.4 KiB
Markdown
# Object - SMTP 邮件发送
|
|
|
|
## `SMTP`
|
|
|
|
声明:class
|
|
|
|
用于连接 SMTP 服务器并发送邮件的内置对象
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
### `create(host)`
|
|
|
|
声明:function
|
|
|
|
创建 SMTP 实例
|
|
|
|
<!-- tags: Object SMTP 邮件发送 创建 生成 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --- | --- | --- |
|
|
| `host` | string | 可选。字符串类型。如果指定了Host参数,会自动从SMTP配置文件里获取其他相应参数,并自动连接 |
|
|
|
|
### `connect()`
|
|
|
|
声明:function
|
|
|
|
连接服务器。需要设置host属性。并且不能多次connect,否则第二次之后的会报错
|
|
|
|
<!-- tags: Object SMTP 邮件发送 连接 登录 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
返回:any
|
|
|
|
#### 示例
|
|
|
|
```tsl
|
|
obj:= CreateObject("smtp") ;
|
|
obj.Host := 'smtp.tinysoft.com.cn' ;
|
|
obj.connect();
|
|
return 1;
|
|
```
|
|
|
|
### `disconnect()`
|
|
|
|
声明:function
|
|
|
|
断开连接
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
返回:any
|
|
|
|
#### 示例
|
|
|
|
```tsl
|
|
obj:= CreateObject("smtp") ;
|
|
obj.Host := 'smtp.tinysoft.com.cn' ;
|
|
obj.connect();
|
|
obj.disconnect();
|
|
return 1;
|
|
```
|
|
|
|
### `disconnectNotifyPeer()`
|
|
|
|
声明:function
|
|
|
|
断开并且通知服务器
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
返回:any
|
|
|
|
#### 示例
|
|
|
|
```tsl
|
|
obj:= CreateObject("smtp") ;
|
|
obj.Host := 'smtp.tinysoft.com.cn' ;
|
|
obj.connect();
|
|
obj.DisconnectNotifyPeer();
|
|
return 1;
|
|
```
|
|
|
|
### `expand(username)`
|
|
|
|
声明:function
|
|
|
|
展开用户名,例如用于邮件列表。需要服务器配置,暂不支持
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --- | --- | --- |
|
|
| `username` | string | 字符串类型,展开的用户名 |
|
|
|
|
返回:string
|
|
|
|
### `login()`
|
|
|
|
声明:function
|
|
|
|
登录,暂不支持。但是,在设置了Username和Password属性时,使用connect()方法就包括连接服务器和登陆功能。如需验证用户名密码可使用Authenticate()方法
|
|
|
|
<!-- tags: Object SMTP 邮件发送 连接 登录 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
返回:any
|
|
|
|
### `quickSend(a_host, a_subject, a_to, a_from, a_text)`
|
|
|
|
声明:function
|
|
|
|
发送邮件。暂时不支持
|
|
|
|
<!-- tags: Object SMTP 邮件发送 发送 提交 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --- | --- | --- |
|
|
| `a_host` | string | 字符串类型,服务器主机名或者地址 |
|
|
| `a_subject` | string | 字符串类型,标题 |
|
|
| `a_to` | string | 接受者邮件地址 |
|
|
| `a_from` | string | 来源邮件地址 |
|
|
| `a_text` | string | 发送的邮件的内容 |
|
|
|
|
返回:any
|
|
|
|
#### 示例
|
|
|
|
```tsl
|
|
obj := CreateObject("smtp");
|
|
obj.UserName := 'username'; //邮箱账号
|
|
obj.Password := 'password'; //邮箱密码
|
|
obj.Host := 'smtp.tinysoft.com.cn'; //smtp地址
|
|
obj.port := 25; //端口
|
|
obj.connect();
|
|
try
|
|
mailHost:='smtp.tinysoft.com.cn'; //邮件服务器地址
|
|
mailSubject:="SendMailTest"; //邮件标题
|
|
mailBody := "test"; //邮件内容
|
|
mailSender := "username@tinysoft.com.cn"; //邮件发送人邮箱
|
|
mailRecipients := " Recipients@qq.com"; //邮件接收人邮箱
|
|
obj.QuickSend(mailHost,mailSubject,mailRecipients,mailSender,mailBody);
|
|
except
|
|
echo '\r\n邮件错误信息',obj.LastCmdResult();
|
|
return echo '\r\n邮件发送失败:',ExceptObject.errinfo;
|
|
end;
|
|
return 1;
|
|
```
|
|
|
|
### `send(message)`
|
|
|
|
声明:function
|
|
|
|
发送邮件
|
|
|
|
<!-- tags: Object SMTP 邮件发送 发送 提交 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --- | --- | --- |
|
|
| `message` | mailmsg | MailMsg对象,需要发送的邮件内容 |
|
|
|
|
返回:any
|
|
|
|
#### 示例
|
|
|
|
```tsl
|
|
obj:= CreateObject("smtp") ;
|
|
obj.UserName := 'username' ; //邮箱账号
|
|
obj.Password := 'password'; //邮箱密码
|
|
obj.Host := 'smtp.tinysoft.com.cn' ; //smtp地址
|
|
obj.port:=25; //端口
|
|
obj.connect();
|
|
//设置mailmsg对象
|
|
msg := CreateObject("MailMsg");
|
|
msg.subject := "SendMailTest"; //邮件标题
|
|
msg.body := "test"; //邮件内容
|
|
msg.Sender := "username@tinysoft.com.cn"; //邮件发送人邮箱
|
|
msg.Recipients :=" Recipients @qq.com";//邮件接收人邮箱
|
|
try
|
|
obj.send(msg);
|
|
except
|
|
echo '\r\n邮件错误信息',obj.LastCmdResult();
|
|
return echo '\r\n邮件发送失败:',ExceptObject.errinfo;
|
|
end;
|
|
return 1;
|
|
```
|
|
|
|
### `sendCmd(cmd, cmd_result, ret_code)`
|
|
|
|
声明:function
|
|
|
|
发送命令
|
|
|
|
<!-- tags: Object SMTP 邮件发送 发送 提交 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --- | --- | --- |
|
|
| `cmd` | string | 字符串类型,发送的命令 |
|
|
| `cmd_result` | string | 可选。返回的结果串 |
|
|
| `ret_code` | string | 可选。返回的代码串 |
|
|
|
|
返回:boolean
|
|
|
|
#### 示例
|
|
|
|
```tsl
|
|
//发送HELO命令。
|
|
obj:= CreateObject("smtp") ;
|
|
obj.Host := 'smtp.tinysoft.com.cn' ;
|
|
obj.connect();
|
|
obj.sendcmd("HELO smtp.tinysoft.com.cn\r\n",r,c);
|
|
return r;
|
|
//结果:665518 Hello smtp.tinysoft.com.cn [ip], pleased to meet you.
|
|
```
|
|
|
|
### `verify(username)`
|
|
|
|
声明:function
|
|
|
|
验证用户名。验证用户名。用户名是否存在当前服务器中,注:smtp服务器可禁止此功能
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --- | --- | --- |
|
|
| `username` | string | 字符串类型,验证的用户名 |
|
|
|
|
返回:string
|
|
|
|
#### 示例
|
|
|
|
```tsl
|
|
obj:= CreateObject("smtp","test") ;
|
|
obj.Host := 'smtp.tinysoft.com.cn' ;
|
|
obj.port:=25;
|
|
try
|
|
username:="username@tinysoft.com.cn";
|
|
return obj.verify(username);
|
|
except
|
|
return echo ExceptObject.errinfo;
|
|
end;
|
|
//结果:username < username@tinysoft.com.cn>
|
|
```
|
|
|
|
### `Authenticate`
|
|
|
|
声明:property
|
|
|
|
服务器验证。验证用户名和密码是否能登陆smtp服务器。使用之前需要先使用connect()方法
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:boolean
|
|
|
|
访问:read/write
|
|
|
|
### `AuthType`
|
|
|
|
声明:property
|
|
|
|
认证类型,0:明文用户密码,1:MD5,2:SASL认证,-1:自定义认证
|
|
|
|
<!-- tags: Object SMTP 邮件发送 摘要 哈希 散列 digest hash 对象 实例 邮件 POP3 -->
|
|
|
|
可见性:public
|
|
|
|
类型:integer
|
|
|
|
访问:read/write
|
|
|
|
### `AuthTypeString`
|
|
|
|
声明:property
|
|
|
|
自定义认证类型,仅当 AuthType 设置为-1时有效;设置为"AUTH=*":自动选择服务器支持的认证类型;多个用分号连接
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP AUTH -->
|
|
|
|
可见性:public
|
|
|
|
类型:string
|
|
|
|
访问:read/write
|
|
|
|
### `DidAuthenticate`
|
|
|
|
声明:property
|
|
|
|
是否已经验证。需要先执行Authenticate()方法验证
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:boolean
|
|
|
|
访问:read
|
|
|
|
### `Host`
|
|
|
|
声明:property
|
|
|
|
获取或设置主机名称或地址
|
|
|
|
<!-- tags: Object SMTP 邮件发送 获取 查询 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:string
|
|
|
|
访问:read/write
|
|
|
|
### `LastCmdResult`
|
|
|
|
声明:property
|
|
|
|
获取最后的命令执行结果
|
|
|
|
<!-- tags: Object SMTP 邮件发送 获取 查询 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:string
|
|
|
|
访问:read
|
|
|
|
### `LastCmdResultCode`
|
|
|
|
声明:property
|
|
|
|
获取最后的命令执行的返回码
|
|
|
|
<!-- tags: Object SMTP 邮件发送 获取 查询 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:string
|
|
|
|
访问:read
|
|
|
|
### `Password`
|
|
|
|
声明:property
|
|
|
|
获取或设置密码
|
|
|
|
<!-- tags: Object SMTP 邮件发送 获取 查询 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:string
|
|
|
|
访问:read/write
|
|
|
|
### `Port`
|
|
|
|
声明:property
|
|
|
|
获取或设置主机端口
|
|
|
|
<!-- tags: Object SMTP 邮件发送 获取 查询 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:integer
|
|
|
|
访问:read/write
|
|
|
|
### `Username`
|
|
|
|
声明:property
|
|
|
|
获取或设置用户名
|
|
|
|
<!-- tags: Object SMTP 邮件发送 获取 查询 对象 实例 邮件 POP3 IMAP -->
|
|
|
|
可见性:public
|
|
|
|
类型:string
|
|
|
|
访问:read/write
|
|
|
|
### `UseSTARTTLS`
|
|
|
|
声明:property
|
|
|
|
控制是否使用显式 TLS(即 STARTTLS 加密协议)
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP TLS STARTTLS -->
|
|
|
|
可见性:public
|
|
|
|
类型:boolean
|
|
|
|
访问:read/write
|
|
|
|
### `UseTLS`
|
|
|
|
声明:property
|
|
|
|
是否采用SSL连接。采用ssl需要设置到服务器的对应端口
|
|
|
|
<!-- tags: Object SMTP 邮件发送 对象 实例 邮件 POP3 IMAP SSL -->
|
|
|
|
可见性:public
|
|
|
|
类型:boolean
|
|
|
|
访问:read/write
|