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

@@ -277,7 +277,7 @@ async function checkSpf(mailDomain, mailFqdn) {
};
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;
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));
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('');
const actual = txtToDict(result.value);
@@ -596,12 +596,12 @@ async function checkConfiguration() {
const message = [];
Object.keys(result.dns).forEach((type) => {
const record = result.dns[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}\``);
[ 'mx', 'dmarc', 'spf', 'dkim', 'ptr4', 'ptr6' ].forEach((type) => {
const record = result[type];
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.rbl && result.rbl.status === false) { // rbl field contents is optional
if (result.relay.status === 'failed') message.push(`Relay error: ${result.relay.message}`);
if (result.rbl4.status === 'failed') {
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(', ')}`);
}