Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Google AppMaker中发送电子邮件时出错_Javascript_Gmail Api_Google App Maker - Fatal编程技术网

Javascript 在Google AppMaker中发送电子邮件时出错

Javascript 在Google AppMaker中发送电子邮件时出错,javascript,gmail-api,google-app-maker,Javascript,Gmail Api,Google App Maker,我想在用户单击按钮时发送电子邮件通知。该按钮将调用sendmail(小部件)函数并调用客户端脚本,如下所示: function sendEmail(widget){ var item = widget.datasource.item; google.script.run .withFailureHandler(function(error) { console.text = error.message; }) .withSuccessHandler(

我想在用户单击按钮时发送电子邮件通知。该按钮将调用
sendmail(小部件)
函数并调用客户端脚本,如下所示:

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);
}
然后,它将通过
项目
传递数据源,并从服务器脚本调用
发送电子邮件(项目)
函数,如下所示:

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
  });
}
函数发送电子邮件(项){
var to=item.OwnerEmail;
var主题='请审查';
var body='你好
我的名字是穆罕默德·阿利夫·本·阿扎利'; MailApp.sendmail({ 致:致,, 主题:主题,, htmlBody:body, 诺雷普利:是的 }); }
但是,当我点击按钮时,我得到了以下错误。有什么帮助吗


看起来您的邮件正文需要转换为HTML正文

这是样品

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
  });
}
函数发送电子邮件(项){
var to=item.OwnerEmail;
var主题='请审查';
var body='你好
我的名字是穆罕默德·阿利夫·本·阿扎利'; var template=HtmlService.createTemplate(主体); var htmlBody=template.evaluate().getContent(); MailApp.sendmail({ 致:致,, 主题:主题,, htmlBody:htmlBody, 诺雷普利:是的 }); }
不幸的是,您无法将任何需要的参数传递给服务器函数。与服务器的通信有一些:

…大多数类型是合法的,但不是日期、函数或DOM元素

…创建循环引用的对象也将失败

应用程序制造商的记录肯定违反了这些限制

有不同的策略来处理这个限制,其中之一是将记录的键作为函数的参数传递

//客户端脚本
功能sendEmail(小部件){
var item=widget.datasource.item;
google.script.run
...
.发送电子邮件(项目编号);
}
//服务器脚本
发送电子邮件功能(itemKey){
var item=app.models.MyModel.getRecord(itemKey);
...
}

您可能无法在item对象中获得正确的值。尝试添加
Logger.log(item.OwnerEmail)
after
var to=item.OwnerEmail2018年5月23日星期三14:07:52 GMT+800muhammadalifazali@airasia.comE Wed May 23 14:07:52 GMT+800 2018因属性中的值非法而失败:aitem.OwnerEmail保留正确的值如果是相同的问题,请删除此值-?邮件发送代码完美。似乎还有其他问题。你以前收到过Appmaker的电子邮件吗?是的,我收到过。“item”变量是否传递了正确的值?我不太确定,非常感谢你,帕维尔,现在我明白为什么了,它工作得很好,再次感谢