mail: fix status variable checks

This commit is contained in:
Girish Ramakrishnan
2025-06-28 12:57:05 +02:00
parent 9428cf0d06
commit c7d36ac06e
2 changed files with 8 additions and 8 deletions

View File

@@ -85,7 +85,7 @@ onMounted(async () => {
</tr> </tr>
<tr> <tr>
<td>{{ $t('email.dnsStatus.current') }}:</td> <td>{{ $t('email.dnsStatus.current') }}:</td>
<td>{{ domainStatus[type].value ? domainStatus[type].value : ('['+$t('email.dnsStatus.recordNotSet')+']') }}</td> <td>{{ domainStatus[type].value ? domainStatus[type].value : ('['+$t('email.dnsStatus.recordNotSet')+']') }} {{ domainStatus[type].message }}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@@ -277,7 +277,7 @@ async function checkSpf(mailDomain, mailFqdn) {
}; };
const [error, txtRecords] = await safe(dig.resolve(result.domain, result.type, DNS_OPTIONS)); const [error, txtRecords] = await safe(dig.resolve(result.domain, result.type, DNS_OPTIONS));
if (error) return Object.assign(result, { message: error.message }); if (error) return Object.assign(result, { status: 'failed', message: error.message });
let i; let i;
for (i = 0; i < txtRecords.length; i++) { for (i = 0; i < txtRecords.length; i++) {
@@ -364,7 +364,7 @@ async function checkDmarc(mailDomain) {
const [error, txtRecords] = await safe(dig.resolve(result.domain, result.type, DNS_OPTIONS)); const [error, txtRecords] = await safe(dig.resolve(result.domain, result.type, DNS_OPTIONS));
if (error) return Object.assign(result, { status: 'failed', message: error.message }); if (error) return Object.assign(result, { status: 'failed', message: error.message });
if (txtRecords.length === 0) return Object.assign(result, { status: 'failed', message: 'No DMARC records' }); if (txtRecords.length === 0) return Object.assign(result, { status: 'failed', message: 'No DMARC record' });
result.value = txtRecords[0].join(''); result.value = txtRecords[0].join('');
const actual = txtToDict(result.value); const actual = txtToDict(result.value);
@@ -596,12 +596,12 @@ async function checkConfiguration() {
const message = []; const message = [];
Object.keys(result.dns).forEach((type) => { [ 'mx', 'dmarc', 'spf', 'dkim', 'ptr4', 'ptr6' ].forEach((type) => {
const record = result.dns[type]; const record = result[type];
if (!record.status) message.push(`${type.toUpperCase()} DNS record (${record.type}) did not match.\n * Hostname: \`${record.name}\`\n * Expected: \`${record.expected}\`\n * Actual: \`${record.value}\``); if (record.status === 'failed') message.push(`${type.toUpperCase()} DNS record (${record.type}) did not match.\n * Hostname: \`${record.name}\`\n * Expected: \`${record.expected}\`\n * Actual: \`${record.value || record.message}\``);
}); });
if (result.relay && result.relay.status === false) message.push(`Relay error: ${result.relay.value}`); if (result.relay.status === 'failed') message.push(`Relay error: ${result.relay.message}`);
if (result.rbl && result.rbl.status === false) { // rbl field contents is optional if (result.rbl4.status === 'failed') {
const servers = result.rbl.servers.map((bs) => `[${bs.name}](${bs.site})`); // in markdown const servers = result.rbl.servers.map((bs) => `[${bs.name}](${bs.site})`); // in markdown
message.push(`This server's IP \`${result.rbl.ip}\` is blocked in the following servers - ${servers.join(', ')}`); message.push(`This server's IP \`${result.rbl.ip}\` is blocked in the following servers - ${servers.join(', ')}`);
} }