Meteor:使用Mailgun在客户端中发送模板

时间:2015-01-30 11:37:17

标签: email templates meteor server mailgun

我在客户端有一个模板

<template name="sendThis">
<img src="logo.png"><br>
<h3>Welcome to Meteor NewBie</h3>
Dear {{name}},
<p>You received this Email because you have subscribed to http://www.example.com</p>
</template>

我想将此模板(sendThis)作为HTML正文发送到订阅者的电子邮件中。

我使用Mailgun作为我的电子邮件客户端。当订阅者点击带有ID&#34;订阅&#34;的按钮时,我应该采取哪些步骤来实现这一目标。

PS:我在这个模板中有多个帮助器,在20多个意义上是多个。

提前致谢。 Mahesh B。

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是使用Blaze.toHTMLWithData将模板(带上下文)呈现为HTML字符串。然后,您可以在服务器上调用一个方法,该方法使用相应的主题和地址向用户发送电子邮件。这是一个例子:

客户端

var sendSignupEmail = function() {
  // This assumes this first email address is the one you want.
  // In some cases you may want the first verified email, but not
  // during signup.
  var address = Meteor.user().emails[0].address;

  var subject = 'Thanks for signing up!';

  // Here I used username - replace this with the appropriate data
  // like Meteor.user().profile.firstName or something.
  var body = Blaze.toHTMLWithData(Template.sendThis, {
    name: Meteor.user().username
  });
  Meteor.call('sendEmail', address, subject, body);
};

服务器

Meteor.methods({
  sendEmail: function(to, subject, html) {
    check([to, subject, html], [String]);
    this.unblock();

    return Email.send({
      to: to,
      from: 'something@example.com',
      subject: subject,
      html: html
    });
  }
});

还要确保已定义MAIL_URL环境变量。