import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeBaseDescription, INodeTypeDescription, } from 'n8n-workflow'; import { NodeConnectionType } from 'n8n-workflow'; import * as send from './send.operation'; const versionDescription: INodeTypeDescription = { displayName: 'Send Email', name: 'emailSend', icon: 'fa:envelope', group: ['output'], version: [2, 2.1], description: 'Sends an email using SMTP protocol', defaults: { name: 'Send Email', color: '#00bb88', }, inputs: [NodeConnectionType.Main], outputs: [NodeConnectionType.Main], credentials: [ { name: 'smtp', required: true, testedBy: 'smtpConnectionTest', }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'hidden', noDataExpression: true, default: 'email', options: [ { name: 'Email', value: 'email', }, ], }, { displayName: 'Operation', name: 'operation', type: 'hidden', noDataExpression: true, default: 'send', options: [ { name: 'Send', value: 'send', action: 'Send an Email', }, ], }, ...send.description, ], }; export class EmailSendV2 implements INodeType { description: INodeTypeDescription; constructor(baseDescription: INodeTypeBaseDescription) { this.description = { ...baseDescription, ...versionDescription, }; } methods = { credentialTest: { smtpConnectionTest: send.smtpConnectionTest }, }; async execute(this: IExecuteFunctions): Promise { let returnData: INodeExecutionData[][] = []; returnData = await send.execute.call(this); return returnData; } }