n8n-nodes-imap-ai
Version:
Simplified IMAP node for n8n with AI-agent support. Clean and modular email and mailbox management for automation workflows.
54 lines • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMailboxStatusOperation = void 0;
const SearchFieldParameters_1 = require("../../../utils/SearchFieldParameters");
exports.getMailboxStatusOperation = {
operation: {
name: 'Get Status',
value: 'getMailboxStatus',
description: 'Get detailed status information for a specific mailbox including message counts and flags. Perfect for AI agents to monitor folder activity, find busy folders, or check for new messages.',
},
parameters: [
{
...SearchFieldParameters_1.parameterSelectMailbox,
description: 'Select the mailbox to get status for. AI agents can monitor specific folders for activity and message counts.',
},
],
async executeImapAction(context, itemIndex, client) {
const returnData = [];
const statusQuery = {
messages: true,
recent: true,
unseen: true,
uidNext: true,
uidValidity: true,
highestModseq: true,
};
const mailboxPath = (0, SearchFieldParameters_1.getMailboxPathFromNodeParameter)(context, itemIndex);
const mailbox = await client.status(mailboxPath, statusQuery);
const item_json = JSON.parse(JSON.stringify(mailbox));
item_json.operation = 'getMailboxStatus';
item_json.mailboxPath = mailboxPath;
item_json.retrievedAt = new Date().toISOString();
item_json.hasNewMessages = (mailbox.unseen || 0) > 0;
item_json.hasRecentMessages = (mailbox.recent || 0) > 0;
item_json.isEmpty = (mailbox.messages || 0) === 0;
item_json.messageDistribution = {
total: mailbox.messages || 0,
unseen: mailbox.unseen || 0,
recent: mailbox.recent || 0,
seen: (mailbox.messages || 0) - (mailbox.unseen || 0),
};
item_json.activityLevel =
mailbox.recent && mailbox.recent > 5
? 'high'
: mailbox.recent && mailbox.recent > 0
? 'medium'
: 'low';
returnData.push({
json: item_json,
});
return returnData;
},
};
//# sourceMappingURL=MailboxGetStatus.js.map