feat(mail): 添加收件箱功能,自动获得验证码

This commit is contained in:
cnlimiter
2026-03-20 12:54:39 +08:00
parent 87ff48cdaf
commit b1a8d02353
16 changed files with 186 additions and 44 deletions

View File

@@ -329,6 +329,7 @@ function renderAccounts(accounts) {
<a href="#" class="dropdown-item" onclick="event.preventDefault();closeMoreMenu(this);refreshToken(${account.id})">刷新</a>
<a href="#" class="dropdown-item" onclick="event.preventDefault();closeMoreMenu(this);uploadAccount(${account.id})">上传</a>
<a href="#" class="dropdown-item" onclick="event.preventDefault();closeMoreMenu(this);markSubscription(${account.id})">标记</a>
<a href="#" class="dropdown-item" onclick="event.preventDefault();closeMoreMenu(this);checkInboxCode(${account.id})">收件箱</a>
</div>
</div>
<button class="btn btn-danger btn-sm" onclick="deleteAccount(${account.id}, '${escapeHtml(account.email)}')">删除</button>
@@ -1217,3 +1218,34 @@ async function saveCookies(id) {
toast.error('保存 Cookies 失败: ' + e.message);
}
}
// 查询收件箱验证码
async function checkInboxCode(id) {
toast.info('正在查询收件箱...');
try {
const result = await api.post(`/accounts/${id}/inbox-code`);
if (result.success) {
showInboxCodeResult(result.code, result.email);
} else {
toast.error('查询失败: ' + (result.error || '未收到验证码'));
}
} catch (error) {
toast.error('查询失败: ' + error.message);
}
}
function showInboxCodeResult(code, email) {
elements.modalBody.innerHTML = `
<div style="text-align:center; padding:24px 16px;">
<div style="font-size:13px;color:var(--text-muted);margin-bottom:12px;">
${escapeHtml(email)} 最新验证码
</div>
<div style="font-size:36px;font-weight:700;letter-spacing:8px;
color:var(--primary);font-family:monospace;margin-bottom:20px;">
${escapeHtml(code)}
</div>
<button class="btn btn-primary" onclick="copyToClipboard('${escapeHtml(code)}')">复制验证码</button>
</div>
`;
elements.detailModal.classList.add('active');
}