Lisää SMTP-testaustyökalu postilaatikon asetuksiin

Korvaa mailbox_debug-endpoint kattavalla smtp_test-endpointilla,
joka testaa yhteyden, TLS:n ja autentikoinnin vaihe vaiheelta.
"Testaa SMTP" -nappi lomakkeessa näyttää tulokset.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 23:57:34 +02:00
parent d5b015d71a
commit 1a41579e4b
3 changed files with 178 additions and 18 deletions

View File

@@ -2600,6 +2600,41 @@ document.getElementById('btn-cancel-mailbox').addEventListener('click', () => {
document.getElementById('mailbox-form-container').style.display = 'none';
});
// SMTP-testaus
document.getElementById('btn-test-smtp').addEventListener('click', async () => {
const mailboxId = document.getElementById('mailbox-form-id').value;
const resultEl = document.getElementById('smtp-test-result');
if (!mailboxId) {
resultEl.style.display = '';
resultEl.textContent = '⚠️ Tallenna postilaatikko ensin, sitten testaa.';
return;
}
resultEl.style.display = '';
resultEl.textContent = '⏳ Testataan SMTP-yhteyttä...';
try {
const res = await apiCall('smtp_test', 'POST', { mailbox_id: mailboxId });
let output = '=== TIETOKANNAN ARVOT ===\n';
if (res.db_values) {
for (const [k, v] of Object.entries(res.db_values)) {
output += ` ${k}: ${v === '' ? '(tyhjä)' : v}\n`;
}
}
output += `\n=== KÄYTETTÄVÄT ARVOT ===\n`;
output += ` Käyttäjä: ${res.effective_user || '(tyhjä)'}\n`;
output += ` Salasanan pituus: ${res.effective_pass_len}\n\n`;
output += `=== TESTIN VAIHEET ===\n`;
if (res.steps) {
res.steps.forEach(s => { output += ` ${s}\n`; });
}
if (res.ehlo_capabilities_tls) {
output += `\n=== EHLO (TLS jälkeen) ===\n${res.ehlo_capabilities_tls}\n`;
}
resultEl.textContent = output;
} catch (e) {
resultEl.textContent = '❌ Virhe: ' + e.message;
}
});
// ==================== YRITYKSEN KÄYTTÄJÄOIKEUDET ====================
async function loadCompanyUsers(companyId) {