galleon
Version:
A badass SMTP mail server built on Node to make your life simpler.
28 lines (25 loc) • 1.07 kB
JavaScript
var fs = require('fs');
var path = require('path');
module.exports = function (Galleon, query, callback) {
if (!Galleon.connection.collections.mail) return callback(new Error('Collection Not Found!'));
Galleon.connection.collections.mail.update({
eID: query.eID.substring(1),
association: query.email
}, query.apply).exec(callback);
// If Spam -> True/False applied
if ((query.apply.spam) && (query.apply.spam.constructor === Boolean)) {
// Find Raw Email for training
fs.readFile(path.resolve(Galleon.environment.paths.raw, query.eID.substring(1)), 'utf8', function (error, buffer) {
if (error) return console.log("SMAPC_RAW->ERROR", error);
// Report or Revoke Spam
try {
Galleon.spamc[(query.apply.spam) ? 'tell' : 'revoke'](buffer, function (error) {
throw error;
console.log("SMAPC_REPORT->REPORTED", query.eID.substring(1), "AS", (query.apply.spam) ? 'SPAM' : 'HAM');
});
} catch (error) {
if (error) console.log("SMAPC_REPORT->ERROR", error);
}
});
}
}