修复认证验证码投递与登录入口体验 05-27-oa-auth-delivery-wecom-entry-fix
这个提交包含在:
@@ -1,6 +1,7 @@
|
||||
require('dotenv/config');
|
||||
|
||||
const { getConfig } = require('../config');
|
||||
const { resolveEmailDeliveryStatus } = require('../services/email');
|
||||
|
||||
function assertCondition(condition, message) {
|
||||
if (!condition) {
|
||||
@@ -42,17 +43,20 @@ function evaluateWecom(config) {
|
||||
}
|
||||
|
||||
function evaluateEmail(config) {
|
||||
if (!config.emailEnabled) {
|
||||
const status = resolveEmailDeliveryStatus(config);
|
||||
if (status.reasons.includes('email_disabled')) {
|
||||
return { state: 'disabled', detail: '企业邮箱 SMTP 未启用', checks: [] };
|
||||
}
|
||||
|
||||
const missing = [];
|
||||
if (!String(config.emailFrom ?? '').trim()) missing.push('EMAIL_FROM');
|
||||
if (!String(config.smtpHost ?? '').trim()) missing.push('SMTP_HOST');
|
||||
if (!Number.isFinite(Number(config.smtpPort)) || Number(config.smtpPort) <= 0) missing.push('SMTP_PORT');
|
||||
if (String(config.smtpUser ?? '').trim() && !String(config.smtpPass ?? '').trim()) missing.push('SMTP_PASS');
|
||||
const reasonLabels = {
|
||||
email_from_missing: 'EMAIL_FROM',
|
||||
smtp_host_missing: 'SMTP_HOST',
|
||||
smtp_port_invalid: 'SMTP_PORT',
|
||||
smtp_auth_incomplete: 'SMTP_USER/SMTP_PASS',
|
||||
};
|
||||
const missing = status.reasons.map((reason) => reasonLabels[reason] ?? reason);
|
||||
|
||||
assertCondition(missing.length === 0, `SMTP 配置不完整:${formatList(missing)}`);
|
||||
assertCondition(status.ready, `SMTP 配置不完整:${formatList(missing)}`);
|
||||
|
||||
return {
|
||||
state: 'ready',
|
||||
|
||||
在新工单中引用
屏蔽一个用户