diff --git a/packages/cli/src/UserManagement/email/NodeMailer.ts b/packages/cli/src/UserManagement/email/NodeMailer.ts index fbf58ca4b6a41..106ac14bc9b29 100644 --- a/packages/cli/src/UserManagement/email/NodeMailer.ts +++ b/packages/cli/src/UserManagement/email/NodeMailer.ts @@ -26,6 +26,20 @@ export class NodeMailer { }; } + if ( + config.getEnv('userManagement.emails.smtp.auth.serviceClient') && + config.getEnv('userManagement.emails.smtp.auth.privateKey') + ) { + transportConfig.auth = { + type: 'OAuth2', + user: config.getEnv('userManagement.emails.smtp.auth.user'), + serviceClient: config.getEnv('userManagement.emails.smtp.auth.serviceClient'), + privateKey: config + .getEnv('userManagement.emails.smtp.auth.privateKey') + .replace(/\\n/g, '\n'), + }; + } + this.transport = createTransport(transportConfig); } diff --git a/packages/cli/src/config/schema.ts b/packages/cli/src/config/schema.ts index a7bef6f5cc897..021b9f4588925 100644 --- a/packages/cli/src/config/schema.ts +++ b/packages/cli/src/config/schema.ts @@ -767,6 +767,18 @@ export const schema = { default: '', env: 'N8N_SMTP_PASS', }, + serviceClient: { + doc: 'SMTP OAuth Service Client', + format: String, + default: '', + env: 'N8N_SMTP_OAUTH_SERVICE_CLIENT', + }, + privateKey: { + doc: 'SMTP OAuth Private Key', + format: String, + default: '', + env: 'N8N_SMTP_OAUTH_PRIVATE_KEY', + }, }, sender: { doc: 'How to display sender name',