From 1cfb071dfb90dca1c5b3486943e598ae4b4ac1ce Mon Sep 17 00:00:00 2001 From: yuhaiming <40624989@qq.com> Date: Thu, 17 Sep 2026 10:29:31 +0800 Subject: [PATCH] =?UTF-8?q?chore(device):=20=E8=A1=A5=E5=85=85=20device.ap?= =?UTF-8?q?p.email=20=E9=85=8D=E7=BD=AE=E6=AE=B5=EF=BC=88Gmail=20SMTP?= =?UTF-8?q?=EF=BC=8C=E5=87=AD=E6=8D=AE=E8=B5=B0=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 内均有同值默认) --- .../src/main/resources/application-dev.yml | 32 ++++++++++++++++++ .../src/main/resources/application-prod.yml | 33 +++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index bb04b95..ab26ddb 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -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: diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index e581b18..74a3e79 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -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: