Meteor:如何使用自己的邮件模板?

时间:2015-04-23 01:18:56

标签: templates meteor customization mailer

大家好我有一个方法如下:

Meteor.methods({
  sendEmail: function (to, from, name, text) {

    if (Meteor.isServer) {
        return Meteor.Mandrill.send({
            to: to,
            from: from,
            name: name,
            text: text
        });
    }
  }
});

在我的contact.js中调用此方法(html视图是contact.html):

if (Meteor.isClient) {
  // This code only runs on the client
  Template.Contact.events({
    "click .btn": function(event) {
      var from  = document.getElementById('from').value; 
      var name  = document.getElementById('name').value;
      var text  = document.getElementById('message').value;

  Meteor.call('sendEmail', 'lolotutu@gmail.com', from, name, text);

    }
  });

  Template.Contact.helpers({
    test: "Working"
  });

一切正常,但我无法控制用于发送邮件的模板。我在这里使用Mandrill,我想知道如何告诉我的sendEmail方法提供一个自定义模板发送给人们。也许是Session.setSession.get的某些内容,但我无法实现它。感谢。

1 个答案:

答案 0 :(得分:-1)

对于名为yourcustomtemplate.html的已定义模板,您可以使用以下命令:

Meteor.methods({
  sendEmail: function (to, from, name, text) {

    if (Meteor.isServer) {
        return Meteor.Mandrill.send({
            to: to,
            from: from,
            name: name,
            text: text,
            html: function(user,url){return Spacebars.toHTML({user: user.name, url: url}, Assets.getText('yourcustomtemplate.html'))}
        });
    }
  }
});

电子邮件将格式化为以html格式发送,文本作为查看器的备份,无法查看html。