1. API/src/modules/ContentChecker.js
checkDkim(data) {
return super.post('http://localhost:5000/verify-dkim', data);
}
2. OWAAddIn/src/taskpane/taskpane.js
dkim = '
DKIM | ' + item.data.analytics[0].dkim + ' |
'
3. Tab/src/kue.js
import ContentChecker from './modules/ContentChecker';
var string = index ? parsedEmail.headerLines[index]['line'] : "";
var spf = "",
dkim = "",
dmarc = "";
return stringSearcher.find(string, 'spf=pass')
.then(async r => {
// spf = (r.length) ? "pass" : "fail"
spf = (r.length) ? "pass" : await checkSpf(SenderIP, spfDomain)
return stringSearcher.find(string, 'dkim=pass')
.then(async q => {
// dkim = (q.length) ? "pass" : "fail"
dkim = (q.length) ? "pass" : (await new ContentChecker().checkDkim({mail : rawHeader}) == "True" ? "pass" : "fail")
console.log("-----dkim-----",dkim)
return stringSearcher.find(string, 'dmarc=pass')
}).then(async z => {
// dmarc = (z.length) ? "pass" : "fail"
dmarc = (z.length) ? "pass" : (spf == "pass" ? "pass" : (dkim == "pass" ? "pass" : "fail"))
if (spf == "pass")
aggreagateData["spfPassCount"] = 1;
if (dkim == "pass")
aggreagateData["dkimPassCount"] = 1;
if (dmarc)
aggreagateData["dmarcPassCount"] = 1;
console.log("{ dmarc: dmarc, spf: spf, dkim: dkim }", { dmarc: dmarc, spf: spf, dkim: dkim })
return db.Header.update({ dmarc: dmarc, spf: spf, dkim: dkim }, {
where: { id: header.id }
}).then(r => [r, header, sender, parsedEmail])
})
})
})
4. Tab/src/modules/ContentChecker.js
import API from './API';
import config from '../config';
export default class ContentChecker extends API {
constructor() {
console.log("config.deceptiveCheck.baseUrl","http://localhost:5000")
super("http://localhost:5000")
}
checkDkim(data) {
return super.post({ 'path': '/verify-dkim' }, data)
}
}
5. /home/ubuntu/tabMaster/tab/API/src/api/resources/email/email.controller.js
var parseString = require('xml2js').parseString;
function parseXmlAndVerifyDkim(header) {
return new Promise((resolve, reject) => {
parseString(header, { trim: true }, async function (err, result) {
resolve(await new ContentChecker().checkDkim({ mail: result["s:Envelope"]["s:Body"][0]["m:GetItemResponse"][0]["m:ResponseMessages"][0]["m:GetItemResponseMessage"][0]["m:Items"][0]["t:Message"][0]["t:ExtendedProperty"][0]["t:Value"][0] }) == "True" ? "Pass" : "Fail");
});
})
}
dkim = (q.length) ? "Pass" : (await new ContentChecker().checkDkim({mail : req.body.header}) == "True" ? "Pass" : "Fail")
dkim = await parseXmlAndVerifyDkim(req.body.header);