繁体   English   中英

获取流星数组中每个人的电子邮件地址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM