Bonjour, j’ai un couple de boîtes e-mail de Zoho et d’autres utilisant un nœud de fonction avec identifiant et mot de passe.
Mot de passe d’application utilisé
Host: imap.zoho.com
port:993
Case à cocher IMAP/SMTP Oui
n8n ne peut pas accéder à la boîte de réception ZOHO avec le nœud de fonction.
Des suggestions ou une solution pour ce problème.
merci
const imaps = require(‘imap-simple’);
const config = {
imap: {
user: ‘YOUR_FULL_EMAIL@zoho.com’,
password: ‘YOUR_16_CHAR_APP_PASSWORD’, // Pas d’espaces
host: ‘imap.zoho.com’,
port: 993,
tls: true,
authTimeout: 10000,
tlsOptions: {
servername: ‘imap.zoho.com’,
rejectUnauthorized: true
}
}
};
try {
// Passer ‘config’ directement ici
const connection = await imaps.connect(config);
await connection.openBox('INBOX');
// Toujours fermer la connexion
connection.end();
return [{ json: { success: true } }];
} catch (err) {
return [{ json: { success: false, error: err.message } }];
}
Décrivez le problème/l’erreur/la question
Quel est le message d’erreur (le cas échéant) ?
Veuillez partager votre flux de travail
(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le flux de travail.)
Partagez la sortie renvoyée par le dernier nœud
Informations sur votre configuration n8n
- Version n8n :
- Base de données (par défaut : SQLite) :
- Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
- n8n s’exécutant via (Docker, npm, n8n cloud, application de bureau) :
- Système d’exploitation :
Salut @ITteck_hub, bon retour !
Deux problèmes ici :
-
require('imap-simple') ne fonctionnera pas dans le nœud Code par défaut. Les packages npm externes sont bloqués dans le bac à sable sauf si vous définissez la variable d’environnement NODE_FUNCTION_ALLOW_EXTERNAL et installez le package dans votre instance n8n. C’est beaucoup de surcharge pour quelque chose que n8n gère nativement.
-
Utilisez plutôt le nœud Email Trigger (IMAP). Configurez les identifiants IMAP avec :
Le trigger interroge automatiquement les nouveaux emails selon son propre intervalle, vous n’avez donc pas besoin d’un Schedule Trigger séparé.
Y a-t-il une raison particulière pour laquelle vous avez besoin de l’approche avec le nœud Code plutôt que du trigger intégré ?
Oui, déjà fait ODE_FUNCTION_ALLOW_EXTERNAL.
Le déclencheur Email IMAP n’a pas la flexibilité de gérer plusieurs Inbox/identifiants d’utilisateurs.
Y a-t-il d’autres options?
bon jour @ITteck_hub
Normalement, je créerais une credential IMAP Email Trigger par boîte aux lettres, ou je diviserais le polling entre plusieurs workflows. Si vous avez besoin d’un polling de boîte aux lettres dynamique à partir d’une liste d’utilisateurs, une option plus sûre est d’exécuter un petit service/script IMAP externe et de laisser n8n l’appeler via HTTP, plutôt que de gérer de nombreuses sessions IMAP et credentials dans un nœud Code. Vérifiez également du côté de Zoho que IMAP est activé pour la boîte aux lettres, que le mot de passe d’application est valide, que la région/l’hôte du compte est correct, et qu’aucune restriction IP/de sécurité ne bloque votre serveur n8n.
Pour plusieurs boîtes aux lettres de manière dynamique, un modèle qui fonctionne : stockez votre liste de boîtes aux lettres (utilisateur, mot_de_passe_app, hôte) dans une feuille Google ou une base de données, puis utilisez un déclencheur Schedule + boucle pour itérer sur chaque ligne. À l’intérieur de la boucle, le nœud Code utilise imap-simple (avec N8N_FUNCTION_ALLOW_EXTERNAL déjà défini) et ouvre une connexion récente par boîte aux lettres en utilisant les identifiants de cette ligne. Chaque connexion est créée et fermée au cours de la même itération, ce qui vous permet d’éviter les problèmes de chevauchement de sessions. Si l’IMAP de Zoho échoue toujours par boîte aux lettres, vérifiez également que chaque compte a IMAP explicitement activé dans les paramètres de Zoho Mail - Zoho l’exige parfois par boîte aux lettres même avec un mot de passe d’application au niveau de l’organisation.
Le déclencheur IMAP pour les e-mails fonctionne… Je pense que je vais essayer de récupérer les détails de l’ID e-mail/mot de passe/hôte depuis la base de données au lieu de les configurer dans le fichier de fonction.
sur le serveur de messagerie Zoho ou sur le VPS n8n ?