|
|
пре 6 година | |
|---|---|---|
| .. | ||
| readme_V1.0.0.md | пре 6 година | |
这是一个基于RT-Thread的SMTP软件包,其支持普通的25端口,同时也支持465和587这两个加密端口。该软件包的使用非常简单方便,如果是基于RT-Thread操作系统,则无需进行任何移植操作即可使用,且仅需调用几个简单的接口即可实现不同端口的邮件发送功能。
首先需要下载 SMTP_CLIENT 软件包,并将软件包加入到项目中。在 BSP 目录下使用 menuconfig 命令打开 Env 配置界面,在 RT-Thread online packages → IoT - internet of things 中选择 SMTP_CLIENT 软件包,具体路径如下:
RT-Thread online packages
IoT - internet of things --->
[*] smtp_client:smtp client package for rt-thread --->
Version (latest) --->
[*] use 465/587 port(encrypted port)
[ ] enable debug log information
smtp_client Options --->
[*] smtp client example
注意:加入示例文件后不能直接下载使用,默认示例中缺少SMTP的个人参数,需要用户补全自己的用户名密码及接收方邮箱等信息!
### 使用说明
#### 使用步骤
smtp_client_init 函数初始化 smtp_client 客户端smtp_set_server_addr 函数设置服务器的地址及端口smtp_set_auth 函数设置服务器认证信息smtp_send_mail 函数发送邮件#### API详解
##### 1、初始化SMTP客户端
void smtp_client_init(void);
该函数主要用于初始化 smtp 会话结构。
int smtp_set_server_addr(const char *server_addr, uint8_t addr_type, const char *port);
| 参数 | 说明 |
|---|---|
| server_addr | 服务器地址 |
| addr_type | 地址类型(域名或IP) |
| port | 端口 |
| 返回值 | 说明 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败 |
该函数用于设置 smtp 服务器地址及端口,地址类型为域名类型和IP类型,分别对应宏 ADDRESS_TYPE_DOMAIN 与 ADDRESS_TYPE_IP .需要注意的是,由于时间仓促及其需求不是很大,目前仅支持域名连接,但如果有需求,在后续版本中会加入IP连接。当然程序中已预留接口,需求紧的用户可使用接口进行拓展。
int smtp_set_auth(const char *username, const char *password);
| 参数 | 说明 |
|---|---|
| username | 服务器用户名 |
| password | 认证密码或凭据 |
| 返回值 | 说明 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败 |
该函数用于设置 smtp 服务器的认证信息,需要注意有些服务器需要用 凭据 而非用户登录邮箱时的密码进行认证,用户在连接服务器时需要确认自己所用服务器的认证方式。
int smtp_send_mail(char *from, char *to, char *subject, char *body);
| 参数 | 说明 |
|---|---|
| from | 发送者邮箱地址 |
| to | 接收者邮箱地址 |
| subject | 主题 |
| body | 内容 |
| 返回值 | 说明 |
|---|---|
| 0 | 发送成功 |
| -1 | 发送失败 |
该函数为邮件发送函数,在用户设置好服务器的连接参数后,可以直接调用该函数进行邮件的发送。需要注意的是,发送者邮箱地址必须和登录用户名相同。
#### 宏配置说明
若用户在使用过程中发现默认的配置无法满足自身的使用需求,用户可以进入 smtp_client_private.h 文件对相关宏定义参数进行配置:
| 宏 | 说明 |
|---|---|
| SMTP_MAX_ADDR_LEN | 邮箱地址最大长度 |
| SMTP_MAX_AUTH_LEN | 认证信息最长度 |
| SMTP_SEND_CMD_MAX_LEN | SMTP指令发送最大长度 |
| SMTP_SEND_DATA_HEAD_MAX_LENGTH | 邮件头最大长度 |
| SMTP_SEND_DATA_MAX_LEN | 邮件内容最大长度 |
| SMTP_RESPONSE_MAX_LEN | 服务器响应数据最大长度 |
一般情况下,用户需要根据自己内容的大小对 SMTP_SEND_DATA_MAX_LEN 进行配置即可。