专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
smtp-relay

loopingz/smtp-relay

loopingz

动态SMTP服务器镜像,支持将SMTP协议转换为AWS SES API调用、发送至SQS,或转发至GCP Pub/Sub,也可将接收的邮件存储到文件系统,适用于本地调试、云服务集成等场景。

下载次数: 0状态:社区镜像维护者:loopingz仓库类型:镜像最近更新:18 天前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,让镜像更快,让人生更轻。点击查看
中文简介
标签列表
镜像标签列表与下载命令
轩辕镜像,让镜像更快,让人生更轻。点击查看

smtp-relay 镜像文档

!https://raw.githubusercontent.com/loopingz/aws-smtp-relay/master/docs/aws-smtp-relay-logo.png

镜像概述

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命令启动,映射端口并指定配置文件:

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

配置文件格式

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

json
{
  "$schema": "https://raw.githubusercontent.com/loopingz/smtp-relay/main/config.schema.json"
}

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

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

json
{
  "$schema": "https://raw.githubusercontent.com/loopingz/smtp-relay/main/config.schema.json",
  "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" // 文件日志
      }
    ]
  }
}

本地开发运行

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

bash
# 无认证模式
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配置示例

json
{
  "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(文件)类型日志,配置示例:

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

过滤器配置

白名单过滤器(whitelist)

允许指定IP或收件人:

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

HTTP认证过滤器(http-auth)

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

json
{
  "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)

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

json
{
  "type": "static-auth"
}

环境变量设置:

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

密码加密命令

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

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

处理器配置

AWS处理器

发送至SES或SQS:

json
{
  "type": "aws",
  "ses": {}, // 发送至SES
  "sqs": { "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue" } // 可选:发送至SQS
}

文件处理器

存储邮件到文件系统:

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

CloudEvent数据结构

邮件的CloudEvent表示格式:

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

Hello World!
.
QUIT

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

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 smtp-relay 镜像标签

docker pull docker.xuanyuan.run/loopingz/smtp-relay:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull loopingz/smtp-relay:<标签>

更多 smtp-relay 镜像推荐

crypdex/smtp-relay logo

crypdex/smtp-relay

crypdex
暂无描述
1 次收藏50万+ 次下载
7 年前更新
turgon37/smtp-relay logo

turgon37/smtp-relay

turgon37
该Docker镜像运行Postfix SMTP服务器实例,配置为SMTP中继,支持通过域名、网络范围或SASL认证限制邮件转发,提供多种中继模式以满足不同场景需求。
24 次收藏10万+ 次下载
5 年前更新
djjudas21/smtp-relay logo

djjudas21/smtp-relay

djjudas21
用于在Kubernetes集群内部发送邮件的SMTP中继主机,提供可靠的邮件转发服务,解决集群内应用程序的邮件发送需求。
1万+ 次下载
4 个月前更新

查看更多 smtp-relay 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
loopingz/smtp-relay
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:831623681
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.