我正在使用imap-simple NPM软件包来检查电子邮件,并且无法正确使插入操作。无法插入到使用流星1.3的NPM中进行采集
我已经阅读完此页面:https://guide.meteor.com/using-npm-packages.html#async-callbacks - 我已经尝试过这些建议,但是他们都没有工作!
我也简化了代码,试图让它工作,但仍然没有运气。
这个问题应该很容易重现 - 流星npm安装imap-simple,将上面的代码放到服务器上,添加一些电子邮件凭据,然后调用方法。
这里是我的代码:
var imaps = require('imap-simple');
var config = {
imap: {
user: '<removed>',
password: '<removed>',
host: 'imap.gmail.com',
port: 993,
tls: true,
authTimeout: 3000
}
};
Meteor.methods({
api_connectEmail: function() {
console.log('Received call to connect email');
imaps.connect(config).then(function (connection) {
return connection.openBox('INBOX').then(function() {
var searchCriteria = [
'UNSEEN'
];
var fetchOptions = {
bodies: ['HEADER', 'TEXT'],
markSeen: true
};
return connection.search(searchCriteria, fetchOptions).then(function (results) {
results.map(function (res) {
var subject = res.parts.filter(function (part) {return part.which === 'HEADER';})[0].body.subject[0];
console.log("Subject: " + subject);
// insert
var attributes = {
subject: subject
};
console.log("Attempting to insert to collection...");
var newData = TempEmailCollection.insert(attributes);
console.log("New Database Entry ID: " + newData);
});
});
});
})
}
});
与主题的的console.log工作。插入不起作用。没有错误,没有console.log后插入,没有。
我已经尝试了在指南中推荐的两种策略,都没有工作。
什么是TempEmailCollection? – Darren
@Darren一个Mongo收集专门用于包含邮件信息。通常在流星的任何地方,.insert都适用于集合。但不是在NPM模块上。而传统的解决方法并不适合我。 –
您需要显示其代码;这整个问题似乎是相关的,而不是电子邮件(你说的工作) – Darren