如果您是我们Devrel博客的常规读者,您可能会知道我们已经发布了几个博客,以使用nylas SDK来发送和阅读电子邮件,以获取Python,Ruby,NodeJS,NodeJS和Java的语言。我们还谈到了使用PHP,C#, and Rust。
今天,我们将学习如何使用基于nodejs的低代码编程环境Node-Red发送和阅读电子邮件,该环境主要用于IoT方案。
安装节点红色
我们可以使用npm通过在终端窗口中键入以下内容来安装节点红色:
$ sudo npm install -g --unsafe-perm node-red
如果您在窗户上,请不要使用sudo。
一旦安装,我们就可以从终端称呼它:
$ node-red
它将在以下地址运行编辑器:
http://127.0.0.1:1880/
节点红色环境
作为一个视觉环境,我们可以简单地将元素拖放到画布中,然后通过电线连接它们:
安装节点
在Node-Red中,我们可以安装其他节点,这将帮助我们更轻松。
我们将安装sysmessage,这是一个可以让我们以简单简单的方式创建通知的节点。
首先,我们需要按右侧的菜单按钮:
然后选择管理调色板:
然后,在安装选项卡上,在搜索框上键入 sysm (启动自动完成),然后单击 install : p>
安装后,我们的画布上的左侧将出现一个新节点: 现在,我们准备发送电子邮件。 首先,我们将选择一个注入节点并将其拖动到画布中: 双击双击,我们可以访问其属性。我们要删除 msg.topic 消息: 我们需要选择 timestamp 并将其更改为 json : 然后,选择三个点来展开编辑器: 并粘贴以下JSON代码: 现在,我们将拖动HTTP请求节点: 在这里,我们需要将方法更改为后,并通过尼拉斯发送端点,该端点是 https://api.nylas.com/send 。然后,我们需要在上打勾使用身份验证,然后选择承载身份验证并传递我们的访问令牌。最后,我们需要添加几个标题,接受和 content-type 。 一旦完成,我们需要拖动并添加 sysmessage 节点并将其配置为这样。在这种情况下,选择警报类型,OSX警报,并添加适当的标题。留下其余的。 将所有节点与电线连接起来,因此看起来像这样: 或,您可以简单地复制并粘贴以下JSON code。 粘贴JSON代码并按导入。 我们应该所有节点准备粘贴。完成后,我们可以按部署按钮,该按钮位于菜单按钮旁边。 部署后,我们只需要按注入注释即可发送电子邮件并获取通知消息。 另外,我们将从调用Nylas API中获得JSON响应。 以最少的努力,没有代码,我们使用Node-Red和Nylas Apis发送了一封电子邮件。 发送电子邮件很简单,几乎简单,但是阅读电子邮件有些复杂。不用担心,会很有趣。 首先,我们将在节点中创建HTTP。 并像这样配置: 该方法是 get , url 将包括/:limit ,这将是我们要获取多少电子邮件和<强>名称
发送电子邮件
{
"subject": "Hello from Node-Red",
"to": [
{
"email": "devrel@nylas.com",
"name": "Nylas' DevRel Team"
}
],
"body": "This email was sent using Node-Red and the Nylas APIs."
}
阅读电子邮件
我们还可以在节点中添加额外的http并获取URL,但没有 /:限制,因为这将帮助我们定义默认页面。< /p>
我们将添加一个更改节点。这将使我们能够从之前读取 /:限制参数。< /p>
名称是可选的,但是集合和值非常重要。我们得到参数值并将其分配给有效载荷。
此参数将是一个字符串,但是我们需要一个整数。因此,我们需要添加一个函数节点并键入以下内容:
if (msg.payload == null){
msg.payload = "5";
}
msg.payload = Number(msg.payload);
return msg;
此代码将简单地检查我们是否通过:limit 参数,如果我们不这样做,请通过 5 作为极限,然后将转换字符串参数整数参数。
下一步将是添加 HTTP请求节点。它将与发送电子邮件发送相同,但URL将为
https://api.nylas.com/messages?in=inbox&limit={{{payload}}}
返回将是解析的JSON对象而不是 utf-8字符串。
在URL上,
**https://api.nylas.com/messages?in=inbox&limit={{{payload}}}**
in = inbox 部分意味着我们仅阅读来自收件箱的邮件,
**limit={{{payload}}}**
意味着我们要获取的电子邮件数量与我们用作参数的数字相同。
我们将收回一系列电子邮件,我们需要一个一个访问它们,因此我们的最佳选择是使用 split node:
此节点将在电子邮件数组中获取每个项目。我们要做的是更改日期字段的格式,因为目前显示为 epoch (自1970年1月1日以来的秒数),我们希望一些更可读的东西。最好的事情是,我们不需要修改该节点的任何属性;我们可以在它来的时候使用它。
这是函数的代码:
msg.payload.date = new Date(msg.payload.date * 1000).toLocaleString();
return msg;
一旦我们修复了日期,就该再次使元素再次成为数组,为此,我们需要使用 join node,它们的方式与拆分,无需进行任何进一步的修改即可使用。
阵列准备就绪并返回到位后,我们需要显示电子邮件中的信息,为此,我们可以使用模板节点。该节点使用mustache系统,这是用于创建动态内容的无逻辑模板引擎。换句话说,它通过使用被代码替换的标签生成HTML代码。
这是我们需要使用的代码:
<html>
<head>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<h1 class="font-black" style="text-align:center">Inbox</h2>
<table class="table-auto">
<tr>
<th>Subject</th>
<th>From (Name)</th>
<th>From (Email)</th>
<th>Date</th>
<th>Snippet</th>
</tr>
{{#payload}}
<tr>
<td>
{{subject}}
</td>
<td>
{{from.0.name}}
</td>
<td>
{{from.0.email}}
</td>
<td>
{{date}}
</td>
<td>
{{snippet}}
</td>
</tr>
{{/payload}}
</table>
</body>
</html>
这将简单地创建一个表格,循环阵列的每个记录,然后打印出发件人,日期和摘要的主题,名称和电子邮件(电子邮件预览)。
最后一块是HTTP响应节点,它将允许我们在Web浏览器上看到模板。
我们不需要更改此节点上的任何内容。
我们单击部署,我们可以开始测试。
我们的画布应该看起来像这样:
当然,我们可以导入以下JSON code。
在我们选择的浏览器上,我们需要导航到:
http://localhost:1880/GetEmails
,我们将在收件箱中收到前五封电子邮件:
我们也可以传递参数,所以这样称呼:
http://localhost:1880/GetEmails/1
这只会获取一封电子邮件。
我们可以选择一到一百的任何数字(如当前的提取限制)。
就是这样。希望你喜欢这个。使用Node-Red和Nylas API发送和读取电子邮件既快速又简单。
如果您想与Nylas了解有关电子邮件管理的更多信息,请访问我们的文档页面Email API Overview。
观看Coding with Nylas episode 18 - Send and Read emails using Node-Red。