Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 提交表格后发送电子邮件_Meteor_Meteor Autoform - Fatal编程技术网

Meteor 提交表格后发送电子邮件

Meteor 提交表格后发送电子邮件,meteor,meteor-autoform,Meteor,Meteor Autoform,我一直试图在自动表单成功提交后发送电子邮件。我尝试使用template.events“submit”无效,并且尝试使用metermethod=“sendmail”。我所做的一切似乎都不管用。有人能告诉我我做错了什么吗 路径:form.html {{#autoForm collection="JobOffers" id="jobOfferForm" type="insert" meteormethod="sendEmail"}} <fieldset> {{> af

我一直试图在自动表单成功提交后发送电子邮件。我尝试使用template.events“submit”无效,并且尝试使用metermethod=“sendmail”。我所做的一切似乎都不管用。有人能告诉我我做错了什么吗

路径:
form.html

{{#autoForm collection="JobOffers" id="jobOfferForm" type="insert" meteormethod="sendEmail"}}
    <fieldset>
    {{> afQuickField name='firstName'}} 

    <button type="submit" data-meteor-method="sendEmail" class="btn btn-primary">Submit</button>
</fieldset>
{{/autoForm}}
更新

路径:
form.js

sendEmail: function (from, subject, userId) {
    check([from, subject, userId], [String]);

    // Let other method calls from the same client start running,
    // without waiting for the email sending to complete.
    this.unblock();

    SSR.compileTemplate( 'htmlEmail', Assets.getText( 'html-email.html' ) );

    // to find the users info for the logged in users
    // var user = Meteor.user();
    var user = Meteor.users.findOne({ _id: userId });
    var email = (user && user.emails[0].address);

    var emailData = {
      // name: (candidate && candidate.profile && candidate.profile.firstName),
      name: (user && user.profile && user.profile.firstName),

      // favoriteRestaurant: "Honker Burger",
      // bestFriend: "Skeeter Valentine"
    };

    Email.send({
      to: email,
      from: from,
      subject: subject,
      html: SSR.render( 'htmlEmail', emailData )
    });

    console.log('sendEmail sent');
  }
});
AutoForm.hooks({
  jobOfferForm: hooksObject
});


var hooksObject = {
    after: {
        insert: function(error, result){
            Email.send({
                var otheruserId = FlowRouter.getParam('id');

                Meteor.call('sendEmail',
                'test@email.com',
                'Hello from Meteor!',
                otheruserId);       
            };          
        }
    }
};

您可以使用autoform的回调/挂钩。如果您希望在插入后发送电子邮件,以下是一个解决方案:

var hooksObject ={
    after: {
        insert: function(error, result){
              //Send email here
        }
    }
}
更新:

var hooksObject = {
  after: {
    insert: function(error, result){
            var otheruserId = FlowRouter.getParam('id');

            Meteor.call('sendEmail',
            'test@email.com',
            'Hello from Meteor!',
            otheruserId);
    }
  }
};

AutoForm.addHooks('jobOfferForm', hooksObject);

有关更多信息,请参阅。

我正在尝试实施您的建议。请原谅我缺乏知识,因为我还在学习流星和编程。总的来说,钩子让我有点困惑。我不知道该把它们放在哪里。我已经阅读了文档,但是我没有发现它有多大帮助。你介意看一下我的更新,让我知道我做错了什么。我还不能发送。在Email.send之后,生成在线路上崩溃。生成崩溃时,您没有收到任何错误消息吗?如果我删除Email.send,则生成很好,但是在我提交表单时没有发生任何事情。您的代码中同时包含Email.send和Meteor.call('sendmail')…)。修好它。