mail: fix status variable checks
This commit is contained in:
14
src/mail.js
14
src/mail.js
@@ -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(', ')}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user