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日 |
#403 in HTTP服务器
每月30次下载
260KB
1.5K SLoC
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认证(明文)
安装
从源码编译
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浏览器中导航到 https://127.0.0.1:1080
来访问Web界面,查看记录的电子邮件列表。此外,还提供了REST API,地址为 https://127.0.0.1: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–20MB
~271K SLoC