-
-
-
+
+
+
+
+
+
Tests the current form settings — no need to save first.
+
+
+
+
+
+
-
-}
+ });
+
+ async function sendTestEmail() {
+ const toEmail = document.getElementById('testToEmail').value.trim();
+ const resultDiv = document.getElementById('testResult');
+ const sendBtn = document.getElementById('testSendBtn');
+
+ if (!toEmail) {
+ resultDiv.style.display = 'block';
+ resultDiv.innerHTML = '
Please enter a recipient email.
';
+ return;
+ }
+
+ const form = document.getElementById('channelForm');
+ const payload = {
+ host: form.querySelector('[name="Host"]').value,
+ port: parseInt(form.querySelector('[name="Port"]').value, 10),
+ username: form.querySelector('[name="Username"]').value,
+ password: form.querySelector('[name="Password"]').value,
+ useSsl: form.querySelector('[name="UseSsl"]').checked,
+ fromEmail: form.querySelector('[name="FromEmail"]').value,
+ fromName: form.querySelector('[name="FromName"]').value,
+ toEmail
+ };
+
+ sendBtn.disabled = true;
+ sendBtn.innerHTML = '
Sending…';
+ resultDiv.style.display = 'none';
+
+ try {
+ const resp = await fetch('/admin/channels/test-smtp', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(payload)
+ });
+ const data = await resp.json();
+ resultDiv.style.display = 'block';
+ resultDiv.innerHTML = data.success
+ ? `
${data.message}
`
+ : `
${data.message}
`;
+ } catch (e) {
+ resultDiv.style.display = 'block';
+ resultDiv.innerHTML = `
Request failed: ${e.message}
`;
+ } finally {
+ sendBtn.disabled = false;
+ sendBtn.innerHTML = '
Send';
+ }
+ }
+