【问题标题】:Setting up Sendinblue mail service with Google Apps Script使用 Google Apps 脚本设置 Sendinblue 邮件服务
【发布时间】:2017-10-05 10:44:38
【问题描述】:

我正在尝试使用 Google Apps 脚本设置 Sendinblue 的邮件服务,如下所示:

code.gs

function sendInBlue(){

eval(UrlFetchApp.fetch('https://cdn.rawgit.com/mailin-api/mailin-api-node-js/master/V2.0/mailin.js').getContentText());

var client = new Mailin("https://api.sendinblue.com/v2.0","your access key");

data = {
"to" : {"to@example.net":"to whom!"},
"from" : ["from@email.com", "from email!"],
"subject" : "My subject",
"html" : "This is the <h1>HTML</h1>"
}

client.send_email(data).on('complete',function(data){console.log(data);});

}

错误信息: ReferenceError: "require" 未定义。

sendinblue node.js 库谈到还需要一个 Restler 库,但我真的不确定如何合并这个库? 我是新手,所以在这里可能完全偏离轨道。

感谢任何指导。

文档:

https://apidocs.sendinblue.com/tutorial-sending-transactional-email/

https://github.com/mailin-api/mailin-api-node-js/tree/master/V2.0

【问题讨论】:

  • 您提供的代码中没有“require”一词。但是你得到的错误是关于“require”没有被定义。 Node.js 使用“require”这个词,所以我猜您正在尝试在 Apps 脚本中使用 Node.js 代码。您需要查看“Curl”文档,而不是 Node.js。然后,您需要将其转换为 Apps 脚本中 UrlFetchApp.fetch(url) 代码的 HTTPS 请求。你离让代码正常工作还有很长的路要走。
  • 您可以考虑在Link to Apps Script Community发布有关如何使其正常工作的信息

标签: javascript node.js google-apps-script sendinblue


【解决方案1】:

使用 Sendinblue 的邮件服务发送电子邮件的代码应该如下所示:

function sendEmailWithSendInBlue() {

var url = "https://api.sendinblue.com/v3/smtp/email";
var myAccessKey = "[enter your v3 access key]"

var data = {
    "sender":{"name":"Name","email":"name@domain.com"},
    "htmlContent":"this is the body",
    "subject":"subject",
    "replyTo":{"email":"name@domain.com","name":"Name"},
    "to":[{"email":"name@domain.com","name":"Name"}]
  }

  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(data),
    'headers': {'api-key':myAccessKey},
  };


  var response = UrlFetchApp.fetch(url, options);

  Logger.log(response.getResponseCode())
}

【讨论】:

  • 嗨桑迪,感谢您的回复。不幸的是,上面的代码对我不起作用。我没有收到错误,所以它必须关闭。请原谅我的无知,但您是否建议也尝试使用 curl 代码?
  • 在构建UrlFetchApp.fetch(url) 请求时,cURL 文档是对 HTTPS 请求中需要包含的内容的最通用说明。其他语言的文档是特定于该语言的,您不需要,而且只是令人困惑。您不能在 Apps 脚本中使用 cURL。即使有人编写了一个库来将 cURL 命令转换为UrlFetchApp.fetch(url) 命令,最终它还是UrlFetchApp.fetch(url)。代码完成了吗?单击查看菜单,然后在运行代码后单击执行脚本。同时选择查看 - 日志。那里有什么?
  • 嗨,桑迪,感谢 cURL 的解释。运行您的代码后,我已经使用日志编辑了我的原始问题。它正在成功执行,只是没有发送电子邮件,在我的 sendinblue 帐户日志中也没有任何电子邮件痕迹。
  • 在网址末尾添加/email。那是被遗漏了吗? https://api.sendinblue.com/v2.0/email
  • 嗨,桑迪,终于使用 API v3 获得了它,包括内容类型,并在对有效负载(参数)进行字符串化之后。再次感谢您指引我朝着正确的方向前进!
猜你喜欢
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多