Falha na conexão IMAP do ZOHO através do nó Function com agendamento

Oi, tenho alguns email boxes da Zoho e de outros usando function node com login e senha.
Senha de aplicativo usada
Host: imap.zoho.com
porta: 993
Caixa de seleção IMAP/SMTP Sim
n8n não consegue acessar a caixa de entrada da ZOHO com function node.
Alguma sugestão ou solução para este problema.
obrigado

const imaps = require(‘imap-simple’);

const config = {
imap: {
user: ‘SEU_EMAIL_COMPLETO@zoho.com’,
password: ‘SUA_SENHA_DE_APP_16_CARACTERES’, // Sem espaços
host: ‘imap.zoho.com’,
port: 993,
tls: true,
authTimeout: 10000,
tlsOptions: {
servername: ‘imap.zoho.com’,
rejectUnauthorized: true
}
}
};

try {
// Passe ‘config’ diretamente aqui
const connection = await imaps.connect(config);

await connection.openBox('INBOX');

// Sempre feche a conexão
connection.end();

return [{ json: { success: true } }];

} catch (err) {
return [{ json: { success: false, error: err.message } }];
}

Descreva o problema/erro/pergunta

Qual é a mensagem de erro (se houver)?

Por favor, compartilhe seu workflow

(Selecione os nós na sua tela e use os atalhos de teclado CMD+C/CTRL+C e CMD+V/CTRL+V para copiar e colar o workflow.)

Compartilhe a saída retornada pelo último nó

Informações sobre sua configuração n8n

  • versão n8n:
  • Banco de dados (padrão: SQLite):
  • Configuração n8n EXECUTIONS_PROCESS (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo desktop):
  • Sistema operacional:

Oi @ITteck_hub , bem-vindo de volta!

Dois problemas aqui:

  1. require('imap-simple') não funcionará no nó Code por padrão. Pacotes npm externos são bloqueados na sandbox a menos que você configure a variável de ambiente NODE_FUNCTION_ALLOW_EXTERNAL e instale o pacote na sua instância n8n. Isso é muita sobrecarga para algo que o n8n manipula nativamente.

  2. Use o nó Email Trigger (IMAP) em vez disso. Configure as credenciais IMAP com:

    • User: seu email Zoho

    • Password: sua senha de aplicativo de 16 caracteres

    • Host: imap.zoho.com

    • Port: 993

    • SSL/TLS: habilitado

O trigger sonda automaticamente novos emails em seu próprio intervalo, então você não precisa de um Schedule Trigger separado.

Há alguma razão específica pela qual você precisa da abordagem de nó Code em vez do trigger integrado?

Sim, já foi feito ODE_FUNCTION_ALLOW_EXTERNAL.
O gatilho de email IMAP não possui flexibilidade para lidar com múltiplas Inbox/IDs de usuário.

Existem outras opções?

bom dia @ITteck_hub

Normalmente eu criaria uma credencial de Gatilho de Email IMAP por caixa de correio, ou dividiria a pesquisa em fluxos de trabalho separados. Se você precisa fazer pesquisa dinâmica de caixas de correio a partir de uma lista de usuários, uma opção mais segura é executar um pequeno serviço/script IMAP externo e deixar o n8n chamá-lo via HTTP, em vez de gerenciar muitas sessões IMAP e credenciais dentro de um nó Code. Também verifique novamente no lado do Zoho, IMAP habilitado para a caixa de correio, senha de aplicativo válida, região/host de conta correto, e nenhuma restrição de IP/segurança bloqueando seu servidor n8n.

Para múltiplas caixas de correio dinamicamente, um padrão que funciona: armazene sua lista de caixas de correio (usuário, app_password, host) em uma Planilha Google ou banco de dados, depois use um trigger Schedule + loop para iterar sobre cada linha. Dentro do loop, o nó Code usa imap-simple (com N8N_FUNCTION_ALLOW_EXTERNAL já definido) e abre uma conexão nova por caixa de correio usando as credenciais daquela linha. Cada conexão é criada e fechada dentro da mesma iteração, então você evita problemas de sobreposição de sessão. Se o IMAP do Zoho ainda estiver falhando por caixa de correio, verifique também que cada conta tenha IMAP explicitamente ativado nas configurações do Zoho Mail - Zoho às vezes exige isso por caixa de correio mesmo com uma app password no nível da organização.

O acionador de IMAP de email está funcionando.. Acho que vou tentar buscar os detalhes de email id/pw/host do banco de dados em vez de configurar no arquivo de função.

no servidor de email Zoho ou na VPS n8n?

@ITteck_hub
zoho