
loganmarchione/docker-postfixrelay]([]
在Docker中运行Postfix(作为中继)
linux/amd64,linux/arm64,linux/arm/v7内部(LAN)网络 公共互联网 ------------------ | | | 发送邮件警报的设备 | | | | | ------------- | | | | | | | ------------------ | | | | | | ------------------ v | 防 | | | ------------------ | 火 | ----------------------------- ------------------- | 发送邮件警报的设备 | | | | 墙 | | | | | | | ----> | 本容器 | --| |--> | SMTP服务器(如Gmail) | ----> | 收件人*** | | | | | | | | | | | ------------------ ------------------ | | ----------------------------- ------------------- ^ | | ------------------ | | | | | | | | | 发送邮件警报的设备 | | | | | | ------------- | | | | ------------------
linux/amd64、linux/arm64、linux/arm/v7架构。latest:最新版本X.X.X:语义化版本(如需固定特定版本时使用)| 变量名 | 是否必填 | 定义 | 示例 | 说明 |
|---|---|---|---|---|
| TZ | 是 | 时区 | America/New_York | [***] |
| RELAY_HOST | 是 | 要使用的公共SMTP服务器 | smtp.gmail.com | |
| RELAY_PORT | 是 | 要使用的公共SMTP端口 | 587 | |
| RELAY_USER | 否 | 登录$RELAY_HOST的地址 | SMTP用户名 | |
| RELAY_PASS | 否 | 登录$RELAY_HOST的密码 | SMTP密码 | 如果使用Gmail 2FA,需要设置应用专用密码 |
| RELAY_SUBMISSIONS | 否(默认:false) | 对$RELAY_HOST使用submissions/TLS | true | 当服务器要求submissions/隐式TLS时需要(启用Postfix的tls_wrappermode (文档)) |
| TEST_EMAIL | 否 | 接收测试邮件的地址 | *** | 如未设置,将不发送测试邮件 |
| TEST_EMAIL_SUBJECT | 否(默认:"Postfix relay test") | 测试邮件的主题 | 阅后即焚 | 如果运行多个实例,可用于区分不同实例 |
| MYORIGIN | 否 | "发件人"地址的域名 | domain.com | 对于AWS SES等需要设置域名的服务是必需的 |
| FROMADDRESS | 否 | 修改"发件人"地址 | *** | 对于某些需要设置发件人地址的SMTP服务是必需的,修复问题19 |
| MYNETWORKS | 否(默认:0.0.0.0/0) | Postfix将为之转发邮件的网络 | 1.2.3.4/24, 5.6.7.8/24 | 单个或多个可信网络,用逗号分隔 |
| MSG_SIZE | 否(默认:***) | Postfix的message_size_limit(字节) | 30720000 | |
| LOG_DISABLE | 否(默认:false) | 设置为true禁用日志 | true |
| 主机端口 | 容器内端口 | 说明 |
|---|---|---|
| 自定义 | 25 | Postfix SMTP服务器 |
| 主机卷 | 容器内卷 | 说明 |
|---|---|---|
| 自定义 | /var/spool/postfix | 用于存储Postfix的邮件队列 |
以下是docker-compose.yml文件示例:
yamlversion: '3' services: postfixrelay: container_name: docker-postfixrelay restart: unless-stopped environment: - TZ=America/New_York - RELAY_HOST=smtp.gmail.com - RELAY_PORT=587 # 如果使用secrets,请注释掉下面两行 - RELAY_USER=*** - RELAY_PASS=your_password_here # 如果使用secrets,请取消下面两行的注释 # - RELAY_USER_FILE=/run/secrets/RELAY_USER_FILE # - RELAY_PASS_FILE=/run/secrets/RELAY_PASS_FILE - RELAY_SUBMISSIONS=true - TEST_EMAIL=*** - TEST_EMAIL_SUBJECT=阅后即焚 - MYORIGIN=domain.com - FROMADDRESS=*** - MYNETWORKS=1.2.3.4/24 - MSG_SIZE=30720000 - LOG_DISABLE=true # 如果使用secrets,请取消下面的注释 # secrets: # - RELAY_USER_FILE # - RELAY_PASS_FILE networks: - postfixrelay ports: - '25:25' volumes: - 'postfixrelay_data:/var/spool/postfix' image: loganmarchione/docker-postfixrelay:latest networks: postfixrelay: volumes: postfixrelay_data: driver: local # 如果使用secrets,请取消下面的注释 # secrets: # RELAY_USER_FILE: # file: ./relay_user.txt # RELAY_PASS_FILE: # file: ./relay_pass.txt
以下是本地运行示例(用于编辑/测试/调试):
bash# 构建Dockerfile docker compose -f docker-compose-dev.yml up -d # 查看日志 docker compose -f docker-compose-dev.yml logs -f # 完成后销毁 docker compose -f docker-compose-dev.yml down
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务