mirror of
https://github.com/nodemailer/wildduck.git
synced 2024-09-20 15:26:03 +08:00
Do not encrypt draft messages
This commit is contained in:
parent
7b8a863125
commit
d5fdb3f4e2
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue