# Module : sendmtp
> **Coder** : ASH   
> **Last Update** : 2026-7-22-22:56     
> **Contact** : ash_server@163.com  
> **Version** : 0.0.1

---

## Features : 功能特性

- **发送邮件** - 向指定的邮箱发送邮件（需要发信方开启SMTP协议，并在程序`default parameter`处填写授权码）

- **汇报任务完成消息** - 调用`send_task_complete_notify()`函数，让电脑不在身边的你第一时间收到程序运行完成的消息

- **汇报任务完成进度** - 调用`send_progress_notify()`函数，让无法实时监控程序运行进度的你随时可以查看程序运行进度

---

## Default Parameter : 默认参数
`SMTP_SERVER`:用来发送邮件的SMTP服务器

`SMTP_PORT`:用来发送邮件的端口

`SENDER_EMAIL`:用来发送邮件的地址

`SENDER_PASSWORD`:发送邮件的授权码

`RECEIVER_EMAIL`:默认的收件地址

## Function Declaration : 函数说明

### `send_email(subject, body, receiver=None)`
> ASH:这是主要的邮件发送函数，也是模块的核心

#### 参数
- `subject`:邮件的主题，传入`str`类
- `body`:邮件的内容，传入`str`类
- `receiver`:邮件的接收者，若不填则为`RECEIVER_EMAIL`

#### 功能
向指定接收者发送某一主题某一内容的邮件

---

### `send_task_complete_notify(task_name, start_time, end_time, result_file=None, count=None)`
> ASH:这是`send_email`函数的拓展方法
#### 参数
- `task_name`:任务名称
- `start_time`,`end_time`:任务的开始时间和结束时间，二者都是`datetime`对象
- `result_file`:这是需要和邮件一同发送的程序输出文本
- `count`:表示程序运算得到的目标结果
#### 功能
向指定接收者发送某一任务的运行结果和运行完成的通知

---

### `send_progress_notify(task_name, current_num, total_found, progress_pct)`

> ASH:这是`send_email`函数的另一个拓展方法，也是`send_task_complete_notify`的姊妹方法

#### 参数
- `task_name`:任务名称
- `current_num`:当前正在处理的对象
- `total_found`:目前找到的目标总数
- `progress_pct`:任务完成百分比

#### 功能
向指定接收者发送某一任务的运行结果和运行达到某一进度的通知