J'aimerais récupérer régulièrement le courrier d'une boîte aux lettres en utilisant un démon Node. L'appel à la méthode de connexion est effectué dans app.js
.
Le fichier javascript que j'utilise pour me connecter à ma boîte aux lettres ( mail.js
) :
var imap = new Imap({
user: 'xxxx@hotmail.com',
password: config.get.gmail_password,
host: 'xxxxx',
port: 993,
tls: true
});
var fetchMail = function()
{
console.log('Connection');
imap.connect();
};
//fetchMail();
imap.once('ready', function() {
console.log('Ready');
imap.search([ 'UNSEEN', ['FROM', 'xxxx'] ], function(err, results)
{
// Do Stuff
}
exports.fetchMail = fetchMail;
Si j'utilise fetchMail()
directement de mail.js
tout va bien.
Cependant, lorsque j'essaie de l'appeler depuis app.js
:
var mail = require('./js/mail');
mail.fetchMail()
Ensuite, la méthode reste dans le fetchMail()
de la fonction mail.js
et le imap.once('ready', function())
n'est jamais déclenché.
Je suppose que c'est un problème de portée avec le imap
var dans mail.js
.
Comment puis-je réparer cela ?
EDIT
J'ai résolu le problème d'une manière que je n'aime pas. J'ai écrit tout ce qui est lié à la variable imap à l'intérieur de la variable fecthMail()
fonction.
N'hésitez pas à rédiger une réponse plus efficace à cette question.