mirror of
https://github.com/nodemailer/wildduck.git
synced 2025-11-17 14:32:24 +08:00
v1.16.1
This commit is contained in:
parent
26f75ff081
commit
3d95b1355b
6 changed files with 24 additions and 27 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
define({
"name": "wildduck",
"version": "1.0.0",
"description": "WildDuck API docs",
"title": "WildDuck API",
"url": "https://api.wildduck.email",
"sampleUrl": false,
"defaultVersion": "0.0.0",
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2019-03-26T12:14:03.120Z",
"url": "http://apidocjs.com",
"version": "0.17.7"
}
});
|
||||
define({
"name": "wildduck",
"version": "1.0.0",
"description": "WildDuck API docs",
"title": "WildDuck API",
"url": "https://api.wildduck.email",
"sampleUrl": false,
"defaultVersion": "0.0.0",
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2019-03-26T12:34:49.315Z",
"url": "http://apidocjs.com",
"version": "0.17.7"
}
});
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{
"name": "wildduck",
"version": "1.0.0",
"description": "WildDuck API docs",
"title": "WildDuck API",
"url": "https://api.wildduck.email",
"sampleUrl": false,
"defaultVersion": "0.0.0",
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2019-03-26T12:14:03.120Z",
"url": "http://apidocjs.com",
"version": "0.17.7"
}
}
|
||||
{
"name": "wildduck",
"version": "1.0.0",
"description": "WildDuck API docs",
"title": "WildDuck API",
"url": "https://api.wildduck.email",
"sampleUrl": false,
"defaultVersion": "0.0.0",
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2019-03-26T12:34:49.315Z",
"url": "http://apidocjs.com",
"version": "0.17.7"
}
}
|
||||
|
|
|
|||
|
|
@ -1067,6 +1067,11 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
* @apiSuccess {Object} contentType.params An object with Content-Type params as key-value pairs
|
||||
* @apiSuccess {String} metaData JSON formatted custom metadata object set for this message
|
||||
* @apiSuccess {Object} reference Referenced message info
|
||||
* @apiSuccess {Object[]} [files] List of files added to this message as attachments. Applies to Drafts, normal messages do not have this property. Needed to prevent uploading the same attachment every time a draft is updated
|
||||
* @apiSuccess {String} files.id File ID
|
||||
* @apiSuccess {String} files.filename Filename of the attached file
|
||||
* @apiSuccess {String} files.contentType MIME type
|
||||
* @apiSuccess {Number} files.size MIME type
|
||||
*
|
||||
* @apiError error Description of the error
|
||||
*
|
||||
|
|
@ -1384,6 +1389,10 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
metaData: messageData.meta.custom || '{}'
|
||||
};
|
||||
|
||||
if (messageData.meta.files && messageData.meta.files.length) {
|
||||
response.files = messageData.meta.files;
|
||||
}
|
||||
|
||||
if (messageData.verificationResults) {
|
||||
response.verificationResults = messageData.verificationResults;
|
||||
}
|
||||
|
|
@ -1943,7 +1952,7 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
* @apiParam {Object[]} [headers] Custom headers for the message. If reference message is set then In-Reply-To and References headers are set automaticall y
|
||||
* @apiParam {String} headers.key Header key ('X-Mailer')
|
||||
* @apiParam {String} headers.value Header value ('My Awesome Mailing Service')
|
||||
* @apiParam {String[]} [files] Attachments as storage file IDs. These attachments are also listed to message metaData.attachedFiles array
|
||||
* @apiParam {String[]} [files] Attachments as storage file IDs. NB! When retrieving message info then an array of objects is returned. When uploading a message then an array of IDs is used.
|
||||
* @apiParam {Object[]} [attachments] Attachments for the message
|
||||
* @apiParam {String} attachments.content Base64 encoded attachment content
|
||||
* @apiParam {String} [attachments.filename] Attachment filename
|
||||
|
|
@ -2202,10 +2211,9 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
return next();
|
||||
}
|
||||
|
||||
let metaData;
|
||||
if (result.value.metaData) {
|
||||
try {
|
||||
metaData = JSON.parse(result.value.metaData);
|
||||
let metaData = JSON.parse(result.value.metaData);
|
||||
if (!metaData || typeof metaData !== 'object') {
|
||||
throw new Error('Not an object');
|
||||
}
|
||||
|
|
@ -2229,6 +2237,7 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
let mailbox = new ObjectID(result.value.mailbox);
|
||||
let raw = result.value.raw;
|
||||
let date = result.value.date || new Date();
|
||||
let files = [];
|
||||
|
||||
let mailboxData;
|
||||
try {
|
||||
|
|
@ -2299,14 +2308,8 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
try {
|
||||
let fileData = await storageHandler.get(userData._id, new ObjectID(file));
|
||||
if (fileData) {
|
||||
if (!metaData) {
|
||||
metaData = {};
|
||||
}
|
||||
if (!metaData.attachedFiles) {
|
||||
metaData.attachedFiles = [];
|
||||
}
|
||||
extraAttachments.push(fileData);
|
||||
metaData.attachedFiles.push({
|
||||
files.push({
|
||||
id: fileData.id.toString(),
|
||||
filename: fileData.filename,
|
||||
contentType: fileData.contentType,
|
||||
|
|
@ -2399,7 +2402,7 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
origin: result.value.ip || '127.0.0.1',
|
||||
transtype: 'UPLOAD',
|
||||
time: date,
|
||||
custom: (metaData ? JSON.stringify(metaData) : result.value.metaData) || '',
|
||||
custom: result.value.metaData || '',
|
||||
reference: referencedMessage
|
||||
? {
|
||||
action: result.value.reference.action,
|
||||
|
|
@ -2407,7 +2410,8 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
id: result.value.reference.id
|
||||
}
|
||||
: false,
|
||||
envelope
|
||||
envelope,
|
||||
files
|
||||
},
|
||||
session: result.value.session,
|
||||
date,
|
||||
|
|
@ -2696,7 +2700,7 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
* @apiParam {String} user ID of the User
|
||||
* @apiParam {String} mailbox ID of the Mailbox
|
||||
* @apiParam {Number} message Message ID
|
||||
* @apiParam {Boolean} deleteFiles If true then deletes attachment files listed in metaData.attachedFiles array
|
||||
* @apiParam {Boolean} deleteFiles If true then deletes attachment files listed in metaData.files array
|
||||
*
|
||||
* @apiSuccess {Boolean} success Indicates successful response
|
||||
* @apiSuccess {String} queueId Message ID in outbound queue
|
||||
|
|
@ -2834,13 +2838,6 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
return next();
|
||||
}
|
||||
|
||||
let metaData;
|
||||
try {
|
||||
metaData = messageData.meta.custom ? JSON.parse(messageData.meta.custom) : false;
|
||||
} catch (err) {
|
||||
// ignore
|
||||
}
|
||||
|
||||
let envelope = messageData.meta.envelope;
|
||||
if (!envelope) {
|
||||
// fetch envelope data from message headers
|
||||
|
|
@ -2936,8 +2933,8 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
}
|
||||
}
|
||||
|
||||
if (deleteFiles && metaData && metaData.attachedFiles) {
|
||||
for (let fileData of metaData.attachedFiles) {
|
||||
if (deleteFiles && messageData.meta.files && messageData.meta.files.length) {
|
||||
for (let fileData of messageData.meta.files) {
|
||||
try {
|
||||
await storageHandler.delete(userData._id, new ObjectID(fileData.id));
|
||||
} catch (err) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wildduck",
|
||||
"version": "1.16.0",
|
||||
"version": "1.16.1",
|
||||
"description": "IMAP/POP3 server built with Node.js and MongoDB",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue