如何在流星项目中添加包含嵌入html代码的电子邮件模板

时间:2016-05-06 04:55:52

标签: meteor meteor-blaze spacebars meteor-helper

我是meteor js的新手。能否请您建议如何在流星项目中添加包含嵌入HTML代码的电子邮件模板。我尝试过很少的软件包,但它不起作用。请你解释一下示例。

注意:当用户注册我的网站时。我们俩(新用户和我)都必须收到电子邮件。两者都包含不同的嵌入html内容。

2 个答案:

答案 0 :(得分:1)

以下是假设您使用blaze的基本示例:

在模板活动中:

var email = emailAddress; //define emailAddress
var dataContext = {
    yourname: getDataFromSomewhere; //whatever you define in dataContext is used in email template
};
var html = Blaze.toHTMLWithData(Template.mailTemplateName, dataContext);
Meteor.call('sendMail', yourname, email, html); 

邮件模板:

<template name="mailTemplateName">
    <h3>Hello {{yourname}}</h3>
</template>

在你的方法中:

sendMail: function(yourname, email, html) {
    this.unblock();
    var options = {
      from:"from@from.com",
      to: email,
      subject: 'Mail subject field',
      html: html
    };
    Email.send(options)
}

您只需要在控制台中使用电子邮件包(meteor add email或将email添加到您的包中)并配置SMTP即可使用。电子邮件包和使用的文档here

SMTP配置示例(在服务器中!)

Meteor.startup(function () {
    smtp = {
    username: 'someMail@something.com',
    password: 'password here',  
    server:   'server.something.com',
    port: 25 //change with correct port
}

process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) //+ ':' + smtp.port;
});

如果您了解此代码中的内容,您可以轻松使用它并使用不同的html模板发送包含不同数据的不同电子邮件

答案 1 :(得分:0)

我幸运地昨天实施了这个要求。以下是使用电子邮件包发送HTML的方向。

执行命令;

  

meteor添加电子邮件

     

meteor add meteorhacks:ssr

创建一个可由 SERVER 访问的HTML。

下面是PROJECT / email.html 的HTML示例代码,用于添加电子邮件包

<template name="email">
  <table>
    <tr>
      <td></td>
      <td width="600">
    <table>
      <tr>
        <th>Name</th>
        <td>{{name}}</td>
      </tr>
      <tr>
        <th>Age</th>
        <td>{{age}}</td>
      </tr>
    </table>
      </td>
    </tr>
  </table>
</template>

SERVER / main.js 文件中,您需要使用

导入包
import { Email } from 'meteor/email';

Meteor.startup(() => {

  //fill EMAIL_ID, PASSWORD
  process.env.MAIL_URL = "smtp://EMAIL_ID:PASSWORD@smtp.gmail.com:465";

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

    var emailData = {
      name: "Jishnu S",
      age: "25"       
    };

  Email.send({
      to: "abc@gmail.com",
      from: "email_ID",
      subject: "Example Email",
      html: SSR.render( 'htmlEmail', emailData )
    });
});

以上代码用于启用gmail SMTP配置的电子邮件。 检查电子邮件和Voila .. !!!!有用。请享用!快乐的编码!