Я пытаюсь отправить электронное письмо каждому человеку из массива. Поэтому мне нужен адрес электронной почты от каждого человека. У меня есть коллекция с именем человека и адресом электронной почты, коллекция называется 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: "[email protected]",
subject: "Einladung",
html: SSR.render('InviteEmail', emailData),
});
}
});
Так теперь вы знаете, что я пытаюсь сделать, теперь вы можете помочь мне с двумя проблемами, сначала получив адрес электронной почты, а затем второй, чтобы перекрыть функцию email.send с каждым адресом электронной почты снова
Я рекомендую использовать только '_id' на клиенте. Передайте массив user '_id's в Meteor.call() и дайте серверу найти нахождение пользователей и извлечение их адресов электронной почты. Это позволит избежать заражения других адресов электронной почты пользователя клиенту (более безопасным) и уменьшит латентность операции. Не забудьте вызывать 'this.unblock()' в вашем методе, чтобы избежать блокирования других запросов. –