首页
/ 使用Docker Compose部署smtp4dev邮件测试服务器的完整指南

使用Docker Compose部署smtp4dev邮件测试服务器的完整指南

2025-07-09 06:37:33作者:傅爽业Veleda

smtp4dev是一个轻量级的SMTP服务器开发工具,专门为开发人员设计,用于在开发环境中捕获和查看发送的电子邮件,而无需实际发送邮件到真实邮箱。本文将详细介绍如何使用Docker Compose快速部署smtp4dev服务。

smtp4dev核心功能概述

smtp4dev主要提供以下功能:

  • 本地SMTP服务器模拟
  • 邮件消息捕获和存储
  • Web界面查看邮件内容
  • IMAP服务器支持
  • 邮件转发(Relay)功能

准备工作

在开始部署前,请确保您的系统已安装:

  1. Docker引擎
  2. Docker Compose工具

Docker Compose配置详解

以下是标准smtp4dev的docker-compose.yml文件配置解析:

version: '3'

services:
  smtp4dev:
    image: rnwood/smtp4dev:v3
    restart: always
    ports:
      - '5000:80'    # Web界面端口
      - '25:25'      # SMTP服务端口
      - '143:143'    # IMAP服务端口
    volumes:
      - smtp4dev-data:/smtp4dev
    environment:
      - ServerOptions__Urls=http://*:80
      - ServerOptions__HostName=smtp4dev

关键配置说明

  1. 端口映射

    • Web界面默认映射到主机的5000端口
    • SMTP服务默认使用25端口
    • IMAP服务默认使用143端口
  2. 数据持久化

    • 使用Docker卷smtp4dev-data持久化存储邮件数据
    • 数据存储在容器内的/smtp4dev目录
  3. 环境变量

    • ServerOptions__Urls:指定Web界面的监听地址
    • ServerOptions__HostName:设置服务器主机名

高级配置选项

smtp4dev提供了丰富的配置选项,可以通过环境变量进行自定义:

服务器选项

# 设置Web界面的基础路径
# - ServerOptions__BasePath=/smtp4dev

# 锁定设置防止通过Web界面修改
# - ServerOptions__LockSettings=true

# 设置保留的邮件数量
# - ServerOptions__NumberOfMessagesToKeep=100

# 设置保留的会话数量
# - ServerOptions__NumberOfSessionsToKeep=100

TLS安全配置

# TLS模式设置:None/StartTls/ImplicitTls
# - ServerOptions__TlsMode=None

# 自定义TLS证书路径
# - ServerOptions__TlsCertificate=

邮箱配置

# 添加测试邮箱
# - ServerOptions__Mailboxes__0=Test=hello@world.com

邮件转发配置

# 设置转发SMTP服务器
# - RelayOptions__SmtpServer=

# 设置转发端口
# - RelayOptions__SmtpPort=25

# 设置允许转发的收件人列表
# - RelayOptions__AllowedEmailsString=

# 设置转发认证信息
# - RelayOptions__Login=
# - RelayOptions__Password=

部署与使用步骤

  1. 创建docker-compose.yml文件,填入上述配置
  2. 在文件所在目录执行:docker-compose up -d
  3. 访问http://localhost:5000打开Web界面
  4. 在应用中配置SMTP服务器为localhost:25发送测试邮件

常见问题解决

  1. 端口冲突

    • 如果25端口被占用,可修改为其他端口如2525:25
  2. 数据持久化

    • 确保卷配置正确,避免重启后邮件数据丢失
  3. 性能问题

    • 对于大量邮件测试,适当增加NumberOfMessagesToKeep

最佳实践建议

  1. 开发环境建议锁定设置(LockSettings=true)
  2. 生产环境不要使用,仅限开发和测试用途
  3. 定期清理旧邮件以节省存储空间
  4. 对于团队使用,可考虑增加认证功能

通过以上配置,您可以快速搭建一个功能完善的邮件测试服务器,极大提高开发和测试效率。smtp4dev的轻量级特性和丰富的配置选项使其成为开发人员不可或缺的工具。