轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
loopingz/smtp-relay
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

smtp-relay Docker 镜像下载 - 轩辕镜像

smtp-relay 镜像详细信息和使用指南

smtp-relay 镜像标签列表和版本信息

smtp-relay 镜像拉取命令和加速下载

smtp-relay 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

smtp-relay
loopingz/smtp-relay

smtp-relay 镜像详细信息

smtp-relay 镜像标签列表

smtp-relay 镜像使用说明

smtp-relay 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

动态SMTP服务器镜像,支持将SMTP协议转换为AWS SES API调用、发送至SQS,或转发至GCP Pub/Sub,也可将接收的邮件存储到文件系统,适用于本地调试、云服务集成等场景。
0 次下载activeloopingz镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

smtp-relay 镜像详细说明

smtp-relay 使用指南

smtp-relay 配置说明

smtp-relay 官方文档

smtp-relay 镜像文档

!logo

镜像概述

smtp-relay 是一个动态SMTP服务器镜像,旨在替代原 aws-smtp-relay 项目。它支持多种功能模式:作为本地调试SMTP服务器将邮件存储到文件夹;将SMTP协议转发至AWS SES API;模拟AWS SES的入站功能(如mail2s3、mail2sqs)及GCP对应功能(如mail2gcpstorage、mail2gcppubsub)。

核心功能与特性

主要功能

  • SMTP协议转换:支持将SMTP请求转换为AWS SES API调用
  • 多平台集成:可发送至AWS SQS、GCP Pub/Sub等云服务
  • 本地存储:将接收的邮件保存到文件系统,用于调试
  • 灵活过滤:通过IP白名单、HTTP认证等过滤器控制访问

核心组件

  • 过滤器(Filters):控制是否接受邮件,支持白名单、HTTP认证、静态认证等类型
  • 处理器(Processors):处理已接受的邮件,支持aws(SES/SQS)、gcp(Pub/Sub)、file(文件存储)等类型
  • 流程(Flows):定义过滤器和输出规则的组合,可配置多个流程
  • 核心(Core):协调各组件,负责邮件流捕获与处理

使用场景

  • 本地调试:运行本地SMTP服务器,将邮件存储到文件夹查看内容
  • AWS SES集成:作为SMTP中继,将邮件通过SES API发送
  • 云服务对接:将邮件转发至AWS SQS或GCP Pub/Sub进行后续处理
  • 多环境适配:通过配置文件灵活切换开发、测试、生产环境的邮件处理逻辑

详细使用方法

快速启动

替换 aws-smtp-relay

使用Docker命令启动,映射端口并指定配置文件:

docker run -p 10025:10025 loopingz/smtp-relay:latest configs/aws-smtp-relay.jsonc

配置文件格式

配置文件可引用官方JSON Schema验证格式:

{
  "$schema": "[***]"
}

提示:将URL中的main替换为具体版本标签(如v1.0.0),可获取对应版本的配置格式。

配置示例(替换aws-smtp-relay)

{
  "$schema": "[***]",
  "flows": {
    "localhost": {
      "filters": [
        {
          "type": "whitelist",
          "ips": ["regexp:.*"] // 允许所有IP访问SMTP
        }
      ],
      "outputs": [
        {
          "type": "aws",
          "ses": {} // 发送至AWS SES
        }
      ]
    }
  },
  "options": {
    "disableReverseLookup": false,
    "authOptional": true, // 无需认证
    "loggers": [
      {
        "level": "INFO",
        "type": "CONSOLE" // 控制台日志
      },
      {
        "level": "INFO",
        "type": "FILE",
        "filepath": "./smtp.log" // 文件日志
      }
    ]
  }
}

本地开发运行

将邮件存储到本地文件夹:

# 无认证模式
docker run -p 10025:10025 -v `pwd`/emails:/smtp-relay/received_emails loopingz/smtp-relay:latest ./configs/fake-smtp.jsonc

# 带认证模式
docker run -e SMTP_USERNAME=test -e SMTP_PASSWORD=plain:test -p 10025:10025 -v `pwd`/emails:/smtp-relay/received-emails loopingz/smtp-relay:latest configs/fake-smtp-with-auth.jsonc

SMTP 2 GCP Storage配置示例

{
  "flows": {
    "localhost": {
      "filters": [
        {
          "type": "whitelist",
          "to": ["regexp:.*@mydomain.com"] // 过滤收件人为指定域名的邮件
        }
      ],
      "outputs": [
        {
          "type": "gcp",
          "path": "gs://myemail/", // 存储至GCP Storage桶
          "pubsub": "" // 可选:发送消息至Pub/Sub队列
        }
      ]
    }
  },
  "options": {
    "disableReverseLookup": false,
    "authOptional": true
  }
}

配置详解

通用变量替换

配置中可使用以下变量(处理器内可用):

  • _iso8601_:日期时间(YYYYmmddHHiiss格式)
  • _timestamp_:UNIX时间戳
  • _id_:会话ID
  • _from_:发件人邮箱
  • _messageId_:邮件ID
  • _subject_:邮件主题
  • _to_:收件人列表(逗号分隔)

日志配置

支持CONSOLE(控制台)和FILE(文件)类型日志,配置示例:

"loggers": [
  {
    "level": "INFO", // 日志级别:DEBUG/INFO/WARN/ERROR
    "type": "CONSOLE"
  },
  {
    "level": "INFO",
    "type": "FILE",
    "filepath": "./smtp.log", // 日志文件路径
    "sizeLimit": 50000000 // 文件大小限制(字节),超过自动分割
  }
]

过滤器配置

白名单过滤器(whitelist)

允许指定IP或收件人:

{
  "type": "whitelist",
  "ips": ["regexp:192\\.168\\..*"], // 允许192.168网段IP
  "to": ["regexp:.*@example\\.com"] // 允许发往example.com的邮件
}

HTTP认证过滤器(http-auth)

将认证请求转发至HTTP端点:

{
  "type": "http-auth",
  "url": "http://localhost:16662/smtp/filter", // 认证端点URL
  "method": "POST",
  "credentialsMethod": "BASIC_AUTH", // 使用Basic Auth传递凭据
  "json_result": { // 可选:验证响应JSON内容
    "path": "$.allowed",
    "value": "true"
  }
}

静态基本认证(Static Basic Auth)

通过配置文件或环境变量设置用户名密码,示例配置:

{
  "type": "static-auth"
}

环境变量设置:

  • SMTP_USERNAME:用户名
  • SMTP_PASSWORD:密码(格式:哈希算法:哈希值,如sha256:abc123...)
  • SMTP_PASSWORD_SALT:可选盐值

密码加密命令

生成加密密码(以sha256为例):

HASH="sha256" PASSWORD="TEST" node -e 'console.log(`${process.env.HASH}:${require("***").createHash(process.env.HASH).update(process.env.PASSWORD).digest("hex")}`)'

处理器配置

AWS处理器

发送至SES或SQS:

{
  "type": "aws",
  "ses": {}, // 发送至SES
  "sqs": { "queueUrl": "[***]" } // 可选:发送至SQS
}

文件处理器

存储邮件到文件系统:

{
  "type": "file",
  "path": "./received_emails/${_iso8601_}_${_id_}.eml" // 使用变量生成文件名
}

CloudEvent数据结构

邮件的CloudEvent表示格式:

interface SmtpCloudEvent {
  email: {
    from?: AddressObject; // 发件人
    attachments: { filename: string; size: number }[]; // 附件
    subject?: string; // 主题
    to?: AddressObject[]; // 收件人
    cc?: AddressObject[]; // 抄送
    bcc?: AddressObject[]; // 密送
    replyTo?: string; // 回复地址
    date?: Date; // 日期
    text?: string; // 文本内容
    html?: string; // HTML内容
  };
  server: {
    clientHostname: string; // 客户端主机名
    remoteAddress: string; // 客户端IP
    remotePort: number; // 客户端端口
    hostNameAppearAs: string; // 服务器显示名称
    id: string; // 会话ID
    secure: boolean; // 是否加密传输
    transmissionType: string; // 传输类型
    username: string; // 认证用户名
  };
}

手动测试SMTP协议

使用openssl连接SMTP服务器,手动发送邮件:

  1. 启动容器并映射端口:
docker run -p 10025:10025 loopingz/smtp-relay:latest
  1. 连接SMTP服务器:
openssl s_client -connect localhost:10025
  1. 发送SMTP命令(示例):
EHLO client.example.com
AUTH LOGIN
<base64编码的用户名>
<base64编码的密码>
MAIL FROM: <***>
RCPT TO: <***>
DATA
Subject: Test Email

Hello World!
.
QUIT

提示:使用base64 <<< "username"命令生成base64编码的凭据。

查看更多 smtp-relay 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.