[英]Get Email Address of every Person in Array in Meteor
我正在尝试向数组中的每个人发送电子邮件。 因此,我需要每个人的电子邮件地址。 我有一个人名的集合,该集合的电子邮件地址名为Benutzer / benutzer。
这是我在客户端上的代码:
Template.NeuesEvent.onCreated(function() {
this.subscribe('events');
this.subscribe('friends');
this.subscribe('benutzer');
});
Template.NeuesEvent.events({
"submit .add-event": function(event){
var Name = event.target.name.value;
var Beschreibung = event.target.beschreibung.value;
var Datum = event.target.Datum.value;
var Autor = Meteor.userId();
var eingeladene = []; <-- this is the array
$.each($('.FreundeCheckbox:checked'), function(){
eingeladene.push($(this).val());
});
var email = Meteor.Benutzer.findOne({"email": eingeladene});<<------
<<---- here i want to grab the email adress
if (Name == "")
{
confirm("Das Event braucht einen Namen ;)")
}
else {
Meteor.call('addEvent', Name, Beschreibung, Datum, eingeladene, Autor, email) <<--
<<------and paste the information here
event.target.name.value = "";
event.target.beschreibung.value = "";
FlowRouter.go('/meineEvents');
return false;
}
}
});
这是我的method.js,但是电子邮件函数现在不在其中,但是我已经知道该怎么做
Meteor.methods({
addEvent(Name, Beschreibung, Datum, eingeladene, Autor, email) {
Events.insert({
Name: Name,
Beschreibung: Beschreibung,
erstelltAm: new Date(),
Datum: Datum,
Eingeladen: eingeladene,
Autor: Autor
});
SSR.compileTemplate('InviteEmail', Assets.getText('Invite-Email.html'));
var emailData = {
Name: Name,
Beschreibung: Beschreibung,
erstelltAm: new Date(),
Datum: Datum,
Eingeladen: eingeladene,
Autor: Autor
};
Email.send({
to: email, <<<-----everytime a new one
from: "example@email.com",
subject: "Einladung",
html: SSR.render('InviteEmail', emailData),
});
}
});
因此,现在您知道我要做什么了,现在可以为我解决两个问题,首先是获取电子邮件地址,其次是如何遍历每个电子邮件地址的email.send函数
请不要在未真正注释的情况下在代码中写入注释:
错误:
var eingeladene = []; <-- this is the array
更好:
var eingeladene = []; // <-- this is the array
请记住,您的eingeladene是一个数组,它不返回任何内容:
var email = Meteor.Benutzer.findOne({"email": eingeladene});
正确的方法是:
var email = Meteor.Benutzer.findOne({"email": {$in: eingeladene}});
无论如何,我会做的是,我会向该方法发送一系列电子邮件并在那里执行操作。 这样的事情。
Template.NeuesEvent.events({
"submit .add-event": function(event){
var Name = event.target.name.value;
var Beschreibung = event.target.beschreibung.value;
var Datum = event.target.Datum.value;
var Autor = Meteor.userId();
var eingeladene = [];
$.each($('.FreundeCheckbox:checked'), function(){
eingeladene.push($(this).val());
});
// we dont't need email yet
if (Name == "")
{
confirm("Das Event braucht einen Namen ;)")
}
else {
// removed Autor and email here, since we don't need it
Meteor.call('addEvent', Name, Beschreibung, Datum, eingeladene);
event.target.name.value = "";
event.target.beschreibung.value = "";
FlowRouter.go('/meineEvents');
return false;
}
}
});
Meteor.methods({
'addEvent': function(Name, Beschreibung, Datum, eingeladene) {
this.unblock();
var Autor = Meteor.users.findOne(this.userId);
Events.insert({
Name: Name,
Beschreibung: Beschreibung,
erstelltAm: new Date(),
Datum: Datum,
Eingeladen: eingeladene,
Autor: Autor
});
SSR.compileTemplate('InviteEmail', Assets.getText('Invite-Email.html'));
var emailData = {
Name: Name,
Beschreibung: Beschreibung,
erstelltAm: new Date(),
Datum: Datum,
Eingeladen: eingeladene,
Autor: Autor
};
// do you really need the fetch emails from the collection?
for (var i in eingeladene) {
var email = Meteor.Benutzer.findOne({"email": eingeladene[i]});
if (!email) {
continue;
}
Email.send({
to: email, <<<-----everytime a new one
from: "example@email.com",
subject: "Einladung",
html: SSR.render('InviteEmail', emailData),
});
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.