n8n-nodes-imap-ai
Version:
Simplified IMAP node for n8n with AI-agent support. Clean and modular email and mailbox management for automation workflows.
70 lines • 3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.subscribeMailboxOperation = void 0;
const SearchFieldParameters_1 = require("../../../utils/SearchFieldParameters");
exports.subscribeMailboxOperation = {
operation: {
name: 'Subscribe',
value: 'subscribeMailbox',
description: 'Subscribe or unsubscribe from mailbox folders to control which folders are visible in email clients. Perfect for AI agents to manage folder visibility and organize email client interfaces.',
},
parameters: [
{
displayName: 'Action',
name: 'action',
type: 'options',
default: 'subscribe',
description: 'Choose to subscribe (show folder) or unsubscribe (hide folder) from the mailbox',
options: [
{
name: 'Subscribe',
value: 'subscribe',
description: 'Subscribe to mailbox (make it visible in email clients)',
action: 'Subscribe to mailbox make it visible in email clients',
},
{
name: 'Unsubscribe',
value: 'unsubscribe',
description: 'Unsubscribe from mailbox (hide it from email clients)',
action: 'Unsubscribe from mailbox hide it from email clients',
},
],
required: true,
},
{
...SearchFieldParameters_1.parameterSelectMailbox,
description: 'Select the mailbox to subscribe/unsubscribe. AI agents can manage folder visibility to keep interfaces clean.',
},
],
async executeImapAction(context, itemIndex, client) {
var _a;
const returnData = [];
const mailboxPath = (0, SearchFieldParameters_1.getMailboxPathFromNodeParameter)(context, itemIndex);
const action = context.getNodeParameter('action', itemIndex);
(_a = context.logger) === null || _a === void 0 ? void 0 : _a.info(`${action === 'subscribe' ? 'Subscribing to' : 'Unsubscribing from'} mailbox "${mailboxPath}"`);
let result;
if (action === 'subscribe') {
result = await client.mailboxSubscribe(mailboxPath);
}
else {
result = await client.mailboxUnsubscribe(mailboxPath);
}
const item_json = {
operation: 'subscribeMailbox',
action: action,
mailboxPath: mailboxPath,
success: true,
actionedAt: new Date().toISOString(),
message: `Successfully ${action}d ${action === 'subscribe' ? 'to' : 'from'} mailbox "${mailboxPath}"`,
visibleInClients: action === 'subscribe',
};
if (result) {
item_json.serverResponse = result;
}
returnData.push({
json: item_json,
});
return returnData;
},
};
//# sourceMappingURL=MailboxSubscribe.js.map