0 0 0 0


I recently started programming my first node.js. I can't find any modules from node that is able to send html page as email. please help, thanks!

Best Answer:

I have been using this module:

Updated example(using express and nodemailer) that includes getting index.jade template from the file system and sending it as an email:

var _jade = require('jade');
var fs = require('fs');
var nodemailer = require("nodemailer");
var FROM_ADDRESS = '';
var TO_ADDRESS = '';
// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
    service: "Gmail",
    auth: {
        user: "",
        pass: "PASSWORD"
var sendMail = function(toAddress, subject, content, next){
  var mailOptions = {
    from: "SENDERS NAME <" + FROM_ADDRESS + ">",
    to: toAddress,
    replyTo: fromAddress,
    subject: subject,
    html: content
  smtpTransport.sendMail(mailOptions, next);
exports.index = function(req, res){
  // res.render('index', { title: 'Express' });
  // specify jade template to load
  var template = process.cwd() + '/views/index.jade';
  // get template from file system
  fs.readFile(template, 'utf8', function(err, file){
      //handle errors
      return res.send('ERROR!');
    else {
      //compile jade template into function
      var compiledTmpl = _jade.compile(file, {filename: template});
      // set context to be used in template
      var context = {title: 'Express'};
      // get html back as a string with the context applied;
      var html = compiledTmpl(context);
      sendMail(TO_ADDRESS, 'test', html, function(err, response){
          return res.send('ERROR');
        res.send("Email sent!");

I'd probably move the mailer part to its own module but I included everything here so you can see it all together.

Copyright © 2011 Dowemo All rights reserved.    Creative Commons   AboutUs