Sending template emails using node.js, node mail and nodemailer-mailgun-transport

I have the following basic nodejs application:

var nodemailer = require('nodemailer');
var hbs = require('nodemailer-express-handlebars');
var options = {
 viewEngine: {
     extname: '.hbs',
     layoutsDir: 'views/email/',
     defaultLayout : 'template',
     partialsDir : 'views/partials/'
 },
 viewPath: 'views/email/',
 extName: '.hbs'
};

var mg = require('nodemailer-mailgun-transport');

var auth = {
    auth: {
        api_key: ' mailgun api key ',
        domain: ' mailgun email domain '
    }
}

var mailer = nodemailer.createTransport(mg(auth));

mailer.use('compile', hbs(options));
mailer.sendMail({
 from: 'test@inventori.io',
 to: 'test@test.com',
 subject: 'Any Subject',
 template: 'email.body',
 context: {
      variable1 : 'value1',
      variable2 : 'value2'
 }
}, function (error, response) {
    // console.error(error);
    if (error) {
        throw error;
    };
 console.log('mail sent to ',response);
 mailer.close();
});

      

view / email /template.hbs

{{>email/head}}
<body>
     {{>email/header}}
     {{{body}}}
     {{>email/footer}}
</body>
</html>

      

view / email / email.body.hbs

<h4>Main Body Here</h4>
{{variable1}} <br/>
{{variable2}}

      

views / overtones / email /header.hbs

<h4>Header Content</h4>

      

views / overtones / email / footer.hbs

<h4>Footer Content</h4>

      

The helm templating engine gives zero errors, but the mailgun transport throws the following error:

Error: Sorry: template parameter is not supported yet. Check back soon!
    at IncomingMessage.<anonymous> (~/test/node_modules/nodemailer-mailgun-transport/node_modules/mailgun-js/lib/request.js:228:15)
at IncomingMessage.emit (events.js:129:20)
at _stream_readable.js:908:16
at process._tickCallback (node.js:355:11)  

      

This example uses the gmail node mail transport:

http://excellencenodejsblog.com/express-nodemailer-sending-mails/

      

I would like to be able to send templated emails using mailgun.

Any help would be greatly appreciated.

Thank.

+3


source to share


1 answer


Change the parameter template

to html

.



If you look at the source code here , the error is correct - there is no such option as a parameter template

.

+2


source







All Articles