我認爲這是我在我的應用程序中處理的最難的問題之一, 我已經安裝了moment.js(使用mrt)。 和我想要做的是讓用戶選擇一個日期和時間,服務器將發送電子郵件給該用戶的朋友。例如:現在是星期四晚上9點13分,用戶想要在星期一上午6點47分發送消息。 並且在用戶設置了我希望在用戶設置的日期和時間每週重複發送電子郵件的時間之後。 所以我想使用這樣的(客戶端)moment.js:流星按日期和時間發送電子郵件
var now = moment(); (the current date and time).
然後使用一個datepicker像jQueryUI的或共同的一個,和一個timepicker,用於設置用戶選擇這樣的時間和日期(客戶端):
var day = user selection using datepicker;
var time = user selection using timepicker;
var result = moment.set(day,time);
結果插入到數據庫:
DateToSendEmail.insert({date:result});
終於有代碼真正執行Email.send功能(服務器端):
var DateToSend = DateToSendEmail.findOne({});
var thisMoment = moment();
if(DateToSend === thisMoment){
Email.send({
to:[friends]
from:"[email protected]"
Subject:"auto email send"
html:"auto email send"
});
}
的一兩件事,我不知道是如果用戶的心不是隨着時間進入應用它是否會工作(可以說一個月)或我應該使用Meteor.setInterval反覆執行該功能?
謝謝,生病檢查一下,並嘗試與它一起玩,生病一定要告訴你,如果我管理這個問題,以及how.thank你agian大衛韋爾登 –
嘿大衛我想知道爲什麼你選擇preform $美元?考慮到你需要發送數百封電子郵件,爲什麼不能僅僅獲取那些今天匹配的郵件呢:var d = new Date(); var d = d.getDay(); //需要是一個數字(0,1,2 ...) var pendingEmails = Groups.find({emailAt:d})。fetch();該操作將減少數據庫上的負載。 –
在我們的例子中,我們會在郵件發送後從郵件集合中移除項目,所以'$ lte'將會總是返回我們想要的集合。在你的實現中,如果你需要保留電子郵件,那麼你應該按照你的建議向查詢添加一個過濾器。 –