4 个版本 (2 个重大更改)
0.3.0 | 2023年6月18日 |
---|---|
0.2.0 | 2023年6月6日 |
0.1.1 | 2023年6月4日 |
0.1.0 | 2023年6月3日 |
#18 in #web-interface
每月25次下载
20KB
348 行
Mailtutan
这是一个 Mailtutan 的仓库,Mailtutan 是一个用 Rust 构建的 SMTP 服务器。该服务器允许您模拟 SMTP(简单邮件传输协议)服务器,用于测试和开发目的,而无需实际向真实地址发送电子邮件。
功能
- 本地模拟 SMTP 服务器进行测试和开发。
- 记录所有传入的电子邮件,包括头和体。
- 提供 Web 界面和 REST API 以查看电子邮件列表。
- Web 界面和 REST API 上的基本 HTTP 认证(rfc7617)
- 支持同时处理多个客户端连接。
- SMTP 上支持传输加密(TLS)
- 使用 WebSockets 支持对 Web 界面进行实时更新。
- Rust 中的轻量级和高效实现。Docker Hub 上的 docker 镜像小于 2MB。
- 多种存储选项:内存(默认)、Maildir(在文件中)
- 支持 SMTP Auth(明文)
安装
从源码编译
git clone [email protected]:mailtutan/mailtutan.git
cd mailtutan
make all # app will be available at ./target/release/mailtutan
Cargo
cargo install mailtutan
AUR
yay -S mailtutan-bin
Docker
docker run -p 1080:1080 -p 1025:1025 -d mailtutan/mailtutan:latest
下载二进制可执行文件
Check out the latest release
配置
默认情况下,Mailtutan 监听 1025 端口的 SMTP 并将传入的电子邮件记录到内存中。Web 界面在 1080 端口上可用。但是,您可以通过支持的参数和环境变量自定义服务器配置。
$ mailtutan -h
An SMTP server for test and development environments.
Usage: mailtutan [OPTIONS]
Options:
--ip <IP>
IPv4 address [env: MAILTUTAN_IPADDR=] [default: 0.0.0.0]
--http-port <HTTP_PORT>
HTTP Port number [env: MAILTUTAN_HTTP_PORT=] [default: 1080]
--smtp-port <SMTP_PORT>
SMTP Port number [env: MAILTUTAN_SMTP_PORT=] [default: 1025]
--smtp-cert-path <SMTP_CERT_PATH>
SMTP Cert Path [env: MAILTUTAN_SMTP_CERT_PATH=]
--smtp-key-path <SMTP_KEY_PATH>
SMTP Key Path [env: MAILTUTAN_SMTP_KEY_PATH=]
--smtp-auth-username <SMTP_AUTH_USERNAME>
SMTP Auth Username [env: MAILTUTAN_AUTH_USERNAME=]
--smtp-auth-password <SMTP_AUTH_PASSWORD>
SMTP Auth Password [env: MAILTUTAN_AUTH_PASSWORD=]
--http-auth
HTTP Auth [env: MAILTUTAN_HTTP_AUTH=]
--http-username <HTTP_USERNAME>
HTTP Username [env: MAILTUTAN_HTTP_USERNAME=] [default: admin]
--http-password <HTTP_PASSWORD>
HTTP Password [env: MAILTUTAN_HTTP_PASSWORD=] [default: admin]
--messages-limit <MESSAGES_LIMIT>
Messages Limit [env: MAILTUTAN_MESSAGES_LIMIT=] [default: 1000]
--storage <STORAGE>
Storage [env: MAILTUTAN_STORAGE=] [default: memory] [possible values: memory, maildir]
--maildir-path <MAILDIR_PATH>
Storage [env: MAILTUTAN_MAILDIR_PATH=] [default: maildir]
-h, --help
Print help
-V, --version
Print version
用法
要将电子邮件发送到 Mailtutan,请配置您的电子邮件客户端或应用程序以使用服务器的 IP 地址或主机名以及配置的端口号。发送到此服务器的任何电子邮件都将被捕获并记录。
您可以通过在 Web 浏览器中导航到 http://localhost:1080
来访问 Web 界面以查看记录的电子邮件列表。此外,REST API 可在 http://localhost:1080/api/
上找到,以编程方式访问电子邮件数据。
API
HTTP 方法 | 端点 | 描述 |
---|---|---|
GET | /api/messages | 获取消息列表 |
GET | /api/messages/:id/json | 获取消息详情 |
GET | /api/messages/:id/source | 获取消息源 |
GET | /api/messages/:id/plain | 获取消息纯文本 |
GET | /api/messages/:id/html | 获取消息 HTML |
GET | /api/messages/:id/parts/:cid | 获取消息附件 |
DELETE | /api/messages/:id | 删除一条消息 |
DELETE | /api/messages | 删除所有消息 |
GET | /api/version | 获取应用程序版本 |
GET | /api/ws | 订阅 WebSocket 以获取更新 |
贡献
欢迎贡献!如果您发现任何错误或对改进有建议,请在 GitHub 仓库 上提交问题或拉取请求。请确保遵循现有的编码风格和指南。
许可证
本项目采用 MIT 许可证 许可。您可以自由使用、修改和分发,请遵守许可证条款。
致谢
- 本项目受到测试和开发轻量级假 SMTP 服务器需求的影响。
- 感谢 Rust 编程语言社区为我们提供了构建高效和可靠软件的优秀工具和库。
依赖项
~12–17MB
~326K SLoC