Do not encrypt draft messages

This commit is contained in:
Andris Reinman 2019-10-02 14:33:06 +03:00
parent 7b8a863125
commit d5fdb3f4e2
2 changed files with 38 additions and 32 deletions

View file

@ -2662,7 +2662,7 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
return next();
}
if (userData.encryptMessages) {
if (userData.encryptMessages && !result.value.draft) {
try {
let encrypted = await encryptMessage(userData.pubKey, raw);
if (encrypted) {

View file

@ -50,39 +50,45 @@ module.exports = (server, messageHandler, userCache) => (path, flags, date, raw,
}
messageHandler.counters.ttlcounter('iup:' + session.user.id, raw.length, limit, false, () => {
messageHandler.encryptMessage(userData.encryptMessages ? userData.pubKey : false, raw, (err, encrypted) => {
if (!err && encrypted) {
raw = encrypted;
}
messageHandler.add(
{
user: session.user.id,
path,
meta: {
source: 'IMAP',
from: '',
to: [session.user.address || session.user.username],
origin: session.remoteAddress,
transtype: 'APPEND',
time: new Date()
},
session,
date,
flags,
raw
},
(err, status, data) => {
if (err) {
if (err.imapResponse) {
return callback(null, err.imapResponse);
}
flags = Array.isArray(flags) ? flags : [].concat(flags || []);
return callback(err);
}
callback(null, status, data);
messageHandler.encryptMessage(
userData.encryptMessages && !flags.includes('\\Draft') ? userData.pubKey : false,
raw,
(err, encrypted) => {
if (!err && encrypted) {
raw = encrypted;
}
);
});
messageHandler.add(
{
user: session.user.id,
path,
meta: {
source: 'IMAP',
from: '',
to: [session.user.address || session.user.username],
origin: session.remoteAddress,
transtype: 'APPEND',
time: new Date()
},
session,
date,
flags,
raw
},
(err, status, data) => {
if (err) {
if (err.imapResponse) {
return callback(null, err.imapResponse);
}
return callback(err);
}
callback(null, status, data);
}
);
}
);
});
});
});