我正在使用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