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