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

app mailtutan

适用于测试和开发环境的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日

#403 in HTTP服务器

每月30次下载

MIT 许可证

260KB
1.5K SLoC

Rust 826 SLoC JavaScript 805 SLoC // 0.0% comments

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认证(明文)

安装

从源码编译

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