首页 > 解决方案 > 来自网页的 Google Apps 脚本 GmailApp

问题描述

我正在尝试使用 Angular 5 访问 Google Apps Script Gmail 服务。这是一个简单的发送电子邮件功能

我的 GAS 代码如下:

function doGet(e){
    var addressee = e.parameters.addressee;
    var subject = e. parameters.subject;
    var body = e.parameters.body;
    sendEmailNA(addressee, subject, body);
}
function sendEmailNA(addressee, subject, body) {
    GmailApp.sendEmail(addressee, subject, body);
}

我的角度服务:

sendGoogleEmailNoAttach(addressee: string, subject: string, body: string){
return this.http.get('https://script.google.com/macros/s/[script ID here]/exec?addressee='+addressee+'&subject='+subject+'&body='+body);
}

我的角度组件:

sendGoogleEmail(){
    for(var i = 0; i < this.addressees.length; i++){
     this.dataService.sendGoogleEmailNoAttach(this.addressees[i].email, this.message.subject, this.message.body)
    .subscribe((data: any) =>{
        console.log(data);
        this.addressees = [];
        this.message.attachments = [];
   })
   }
}

然后我将其发布为访问网络应用程序的用户和任何人。

我在 Stackdriver Logging 中没有收到任何错误。我只是在本地控制台上得到一个 CORS 错误,这对我来说历史上意味着其他地方的错误。

任何想法或想法表示赞赏。谢谢你。

标签: angulargoogle-apps-script

解决方案


这里可能会发生一些问题。由于我没有足够的声誉来评论和询问更多信息,因为你的答案是在 2018 年被问到的,你可能已经修补了它,我将在下面列出。

收到 CORS 错误有几个原因,可能是:

  1. 您的脚本运行并没有返回任何内容,但尚不清楚您是否已对其进行修补。如果您的脚本没有返回任何内容,谷歌脚本将提供一个 HTML 页面,说明代码没有返回任何内容,这将触发 CORS 错误。
  2. 您的脚本遇到了错误,这也会导致 google 脚本返回 HTML 页面并导致 CORS 错误。

您可以使用hurl.it对其进行测试以查看您的脚本返回什么,您可以在 google 脚本编辑器中测试您的脚本并将其设置为可能的值。

希望这还不算太晚!


推荐阅读