Error in sending Email in Google AppMaker

≯℡__Kan透↙ 提交于 2019-12-11 07:35:40

问题


I want to send an email notification whenever the user clicks on a button. The button will call sendEmail(widget) function and invoke a client script as follow:

function sendEmail(widget){

  var item = widget.datasource.item;

  google.script.run
    .withFailureHandler(function(error) {
      console.text = error.message;
    })
   .withSuccessHandler(function(result) {
      console.text = 'succeed';
   })
 .sendEmails(item);
}

then it will pass the datasource on item and call sendEmails(item) function from a server script as follows:

function sendEmails(item){  

  var to = item.OwnerEmail;

  var subject = 'Please Review';

  var body = 'hello<br/>my name is Muhammad Alif bin Azali';

  MailApp.sendEmail({
      to: to,
      subject: subject,
      htmlBody: body,
      noReply: true
  });
}

but when I click the button I got following error instead. Any help?


回答1:


Unfortunately, you cannot pass whatever you want as a parameter to your server function. Communication to the server has some limitations:

...most types are legal, but not Date, Function, or DOM element...

...objects that create circular references will also fail...

App Maker's records definitely violate those restrictions.

There are different strategies to handle this limitation, one of them is passing record's key as function's parameter.

// Client script
function sendEmail(widget) {
  var item = widget.datasource.item;

  google.script.run
  ...
 .sendEmails(item._key);
}

// Server script
function sendEmails(itemKey) {
  var item = app.models.MyModel.getRecord(itemKey);
  ...
}



回答2:


Looks like your Mail Body needs to be converted in HTML Body,

Here's the sample

function sendEmails(item){  

  var to = item.OwnerEmail;

  var subject = 'Please Review';

  var body = 'hello<br/>my name is Muhammad Alif bin Azali'; 
  var template = HtmlService.createTemplate(body);
  var htmlBody = template.evaluate().getContent();


  MailApp.sendEmail({
      to: to,
      subject: subject,
      htmlBody: htmlBody ,
      noReply: true
  });
}


来源:https://stackoverflow.com/questions/50479987/error-in-sending-email-in-google-appmaker

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!