#smtp-server #web-interface #smtp #email #email-client #wasm #mail-server

app mailtutan-web

为 mailtutan 项目开发的 Frontend,该项目是一个用于测试和开发环境的 SMTP 服务器

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次下载

MIT 许可证

20KB
348

Mailtutan

这是一个 Mailtutan 的仓库,Mailtutan 是一个用 Rust 构建的 SMTP 服务器。该服务器允许您模拟 SMTP(简单邮件传输协议)服务器,用于测试和开发目的,而无需实际向真实地址发送电子邮件。

screenshot-1

功能

  • 本地模拟 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