chore(device): 补充 device.app.email 配置段(Gmail SMTP,凭据走环境变量)

- application-dev.yml / application-prod.yml 新增 device.app.email 段(各 +32/33 行)
- 与已提交的 AppEmailService/AppProperties.Email 对齐:字段名、默认值一一对应
- mock 语义:dev=true 仅打日志;prod=false,且 prod+mock=true 时 AppEmailProdGuard 拒绝启动
- host/port/user/pass/from 全部由 ${DEVICE_APP_EMAIL_*} 环境变量注入,无任何明文凭据
- allowed-domains 默认注释(留空=不限制域名),要"只允许谷歌邮箱"取消注释即可,无需改代码
- 整段删除不影响启动(AppProperties 内均有同值默认)
This commit is contained in:
yuhaiming
2026-09-17 10:29:31 +08:00
parent 79b739fe02
commit 1cfb071dfb
2 changed files with 65 additions and 0 deletions

View File

@@ -206,6 +206,38 @@ mail:
# Socket连接超时值,单位毫秒,缺省值不超时
connectionTimeout: 0
--- # 设备域 · APP 端配置(前缀 device.app,对应 org.dromara.device.config.AppProperties)
# 所有项在代码中均有默认值,此处显式列出仅为便于运维调参;整段删除不影响启动。
device:
app:
# ---------------- APP 邮箱验证码(邮箱注册 / 邮箱登录 / 邮箱找回密码) ----------------
email:
# 是否仅打印日志而不真实发信:开发环境默认 true,便于在无 SMTP 条件下联调。
# 【生产环境(prod)必须为 false】——否则应用拒绝启动,防止验证码明文写入日志。
mock: true
# 谷歌邮箱 Gmail SMTP
host: ${DEVICE_APP_EMAIL_HOST:smtp.gmail.com}
# 465 走 SSL;若改用 587 端口,请同时设 ssl-enable=false 且 starttls-enable=true
port: ${DEVICE_APP_EMAIL_PORT:465}
# 发信账号(Gmail 地址)。凭据一律由环境变量注入,禁止写入本文件
user: ${DEVICE_APP_EMAIL_USER:}
# 发信凭据:Gmail 的 16 位「应用专用密码」(非账号登录密码),由环境变量注入
pass: ${DEVICE_APP_EMAIL_PASS:}
# 发件人,留空则回落到 user。Gmail 要求发件人与认证账号一致,否则拒收
from: ${DEVICE_APP_EMAIL_FROM:}
ssl-enable: true
starttls-enable: false
# smtp.gmail.com 在国内机房通常不可达,必须快速失败,避免挂死 HTTP 请求线程
connection-timeout: 5000
timeout: 10000
# 验证码位数 / 有效期(分钟)/ 重发间隔(秒)
code-length: 6
expiry-minutes: 5
resend-seconds: 60
# 允许注册的邮箱域名白名单,留空(或不配)表示不限制域名。
# 若产品要求「只允许谷歌邮箱注册」,取消下行注释即可,无需改代码:
# allowed-domains: gmail.com,googlemail.com
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用
sms:

View File

@@ -209,6 +209,39 @@ mail:
# Socket连接超时值,单位毫秒,缺省值不超时
connectionTimeout: 0
--- # 设备域 · APP 端配置(前缀 device.app,对应 org.dromara.device.config.AppProperties)
# 所有项在代码中均有默认值,此处显式列出仅为便于运维调参;整段删除不影响启动。
device:
app:
# ---------------- APP 邮箱验证码(邮箱注册 / 邮箱登录 / 邮箱找回密码) ----------------
email:
# 【必须为 false】生产环境开启 mock 会把邮箱验证码明文写入日志,
# 此时 org.dromara.device.config.AppEmailProdGuard 将直接拒绝启动(属预期保护)。
mock: false
# 谷歌邮箱 Gmail SMTP
host: ${DEVICE_APP_EMAIL_HOST:smtp.gmail.com}
# 465 走 SSL;若改用 587 端口,请同时设 ssl-enable=false 且 starttls-enable=true
port: ${DEVICE_APP_EMAIL_PORT:465}
# 发信账号(Gmail 地址)。凭据一律由环境变量注入,禁止写入本文件
user: ${DEVICE_APP_EMAIL_USER:}
# 发信凭据:Gmail 的 16 位「应用专用密码」(非账号登录密码),由环境变量注入
pass: ${DEVICE_APP_EMAIL_PASS:}
# 发件人,留空则回落到 user。Gmail 要求发件人与认证账号一致,否则拒收
from: ${DEVICE_APP_EMAIL_FROM:}
ssl-enable: true
starttls-enable: false
# smtp.gmail.com 在国内机房通常不可达:若部署在国内,请评估改用国内 SMTP,
# 或确认服务器具备出海能力后再上线邮箱注册功能。
connection-timeout: 5000
timeout: 10000
# 验证码位数 / 有效期(分钟)/ 重发间隔(秒)
code-length: 6
expiry-minutes: 5
resend-seconds: 60
# 允许注册的邮箱域名白名单,留空(或不配)表示不限制域名。
# 若产品要求「只允许谷歌邮箱注册」,取消下行注释即可,无需改代码:
# allowed-domains: gmail.com,googlemail.com
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用
sms: