I want to send an email from a webix application by clicking a button in the UI, which will send a post request through an ajax call to the node JS server at the backend. The webix part looks like below:
{   id:'tb',
    view: 'toolbar',
    cols: [
    {view:"button", id:"mail_btn", type:"icon", label:"SendEmail", tooltip:"Send an email",  width:100, on: {onItemClick:function(){sendEmail()}} },     
       ]
}
The callback function:
function sendEmail() {        
    var bodypart = {"message" : "This is a test mail"};        
    $.ajax({
          type: 'POST',
          url: '/appl/email',
          data: bodypart,
          success: function (data) {
                        console.log("success");
                    },
                error: function(err){
                   console.log(err);
                    }
                });
  }
}
The above ajax call sends a request to the node JS where I am using sendmail npm package to achieve this. The code looks like below :
var sendmail = require('sendmail')();
app.post('/appl/email', sendmail());
    function sendEmail() {
      sendmail({
        from: 'xyz@support.com',
        to: 'abc@support.com',
        subject: 'test sendmail',
        html: 'Mail of test sendmail ',
      }, function(err, reply) {
        console.log(err && err.stack);
        console.dir(reply);
    });
    }
However, I am getting below error :
Error: Route.post() requires callback functions but got a [object Undefined]
Is there a way to send email from webix itself without sending the request to node JS server ? Or else how to use the sendmail npm package to achieve this the way I am trying ?
Any help would be appreciated.
via A.G.Progm.Enthusiast
 
No comments:
Post a Comment