ZOHO IMAP-Verbindung über Function-Knoten mit Planung fehlgeschlagen

Hallo, ich habe ein paar E-Mail-Boxen von Zoho und anderen, die ich mit einem Function Node mit Login und Passwort verwende.
App-Passwort verwendet
Host: imap.zoho.com
Port: 993
IMAP/SMTP-Kontrollkästchen: Ja
n8n kann nicht auf das ZOHO-Postfach mit dem Function Node zugreifen.
Habt ihr einen Vorschlag oder eine Lösung für dieses Problem?
Danke

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

const config = {
imap: {
user: ‘YOUR_FULL_EMAIL@zoho.com’,
password: ‘YOUR_16_CHAR_APP_PASSWORD’, // Keine Leerzeichen
host: ‘imap.zoho.com’,
port: 993,
tls: true,
authTimeout: 10000,
tlsOptions: {
servername: ‘imap.zoho.com’,
rejectUnauthorized: true
}
}
};

try {
// Übergebe ‘config’ direkt hier
const connection = await imaps.connect(config);

await connection.openBox('INBOX');

// Schließe die Verbindung immer
connection.end();

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

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

Beschreibe das Problem/den Fehler/die Frage

Wie lautet die Fehlermeldung (falls vorhanden)?

Bitte teilen Sie deinen Workflow

(Wähle die Knoten auf deiner Canvas aus und verwende die Tastenkombinationen CMD+C/STRG+C und CMD+V/STRG+V zum Kopieren und Einfügen des Workflows.)

Geben Sie die Ausgabe des letzten Knotens aus

Informationen zu deinem n8n-Setup

  • n8n-Version:
  • Datenbank (Standard: SQLite):
  • n8n EXECUTIONS_PROCESS-Einstellung (Standard: own, main):
  • n8n läuft über (Docker, npm, n8n Cloud, Desktop-App):
  • Betriebssystem:

Hallo @ITteck_hub, willkommen zurück!

Zwei Probleme hier:

  1. require('imap-simple') funktioniert im Code-Node standardmäßig nicht. Externe npm-Pakete sind in der Sandbox blockiert, es sei denn, du setzt die Umgebungsvariable NODE_FUNCTION_ALLOW_EXTERNAL und installierst das Paket in deiner n8n-Instanz. Das ist ein großer Mehraufwand für etwas, das n8n nativ handhabt.

  2. Verwende stattdessen den Email Trigger (IMAP)-Node. Richte die IMAP-Anmeldedaten wie folgt ein:

    • Benutzer: deine Zoho-E-Mail

    • Passwort: dein 16-stelliges App-Passwort

    • Host: imap.zoho.com

    • Port: 993

    • SSL/TLS: aktiviert

Der Trigger fragt in seinem eigenen Intervall automatisch nach neuen E-Mails, sodass du keinen separaten Schedule Trigger benötigst.

Gibt es einen bestimmten Grund, warum du den Code-Node-Ansatz dem integrierten Trigger vorziehen möchtest?

Ja, bereits erledigt ODE_FUNCTION_ALLOW_EXTERNAL.
Email-Trigger IMAP hat nicht die Flexibilität, mehrere Postfächer/Benutzer-IDs zu verwalten.

Gibt es andere Optionen?

guten tag @ITteck_hub

Ich würde normalerweise für jeden Mailbox ein IMAP Email Trigger Credential erstellen oder das Polling in separate Workflows aufteilen. Wenn du dynamisches Mailbox-Polling aus einer Benutzerliste benötigst, ist eine sicherere Option, einen kleinen externen IMAP-Service/ein Skript zu betreiben und n8n es per HTTP aufrufen zu lassen, anstatt viele IMAP-Sitzungen und Credentials in einem Code-Node zu verwalten. Überprüfe auch auf Zohos Seite, dass IMAP für die Mailbox aktiviert ist, dass das App-Passwort gültig ist, dass die richtige Kontoregion/der richtige Host eingestellt ist, und dass keine IP-/Sicherheitsbeschränkung deinen n8n-Server blockiert.

Für mehrere Postfächer dynamisch funktioniert ein Muster wie folgt: Speichern Sie Ihre Postfachliste (Benutzer, App-Passwort, Host) in einem Google Sheet oder einer Datenbank, verwenden Sie dann einen Schedule-Trigger + eine Schleife, um über jede Zeile zu iterieren. Im Loop verwendet der Code-Node imap-simple (mit bereits gesetztem N8N_FUNCTION_ALLOW_EXTERNAL) und öffnet eine neue Verbindung pro Postfach unter Verwendung der Anmeldedaten aus dieser Zeile. Jede Verbindung wird innerhalb der gleichen Iteration erstellt und geschlossen, sodass Sie Sitzungsüberschneidungsprobleme vermeiden. Falls Zohos IMAP immer noch pro Postfach fehlschlägt, prüfen Sie auch, dass IMAP für jeden Account in den Zoho Mail-Einstellungen explizit aktiviert ist – Zoho erfordert dies manchmal pro Postfach, selbst bei einem App-Passwort auf Organisationsebene.

Email IMAP-Trigger funktioniert.. Ich denke, ich versuche stattdessen, die E-Mail-ID/PW/Host-Details aus der Datenbank abzurufen, anstatt sie in der Funktionsdatei einzurichten.

auf Zoho-E-Mail-Server oder n8n VPS?

@ITteck_hub
zoho