通过nodemailer发送Alexa Skill Fact中的电子邮件

时间:2019-04-16 14:51:09

标签: node.js json alexa package.json alexa-skill

这是我的第一篇帖子,如果我的问题没有道理,我深表歉意。我是node.js和Alexa技能的新手。我正在研究Alexa的技术资料,该技术资料可以将电子邮件发送到票务系统。我想通过NodeJS Nodemailer做到这一点。我相信我必须在开发人员控制台上安装nodemailer才能使它起作用。我不知道如何在Alexa开发人员控制台上下载和使用Nodemailer。我正在使用Alexa托管(测试版)服务,并在Alexa模拟器上进行测试,以确认是否有任何改变。

我已经研究了IFTTT,但这不是我想要的,因为发邮件人的电子邮件会因使用此技能的人和不同的消息而改变,并且我不认为IFTTT能够做到。我已经研究过创建电子邮件并在js文件本身中发送电子邮件,这似乎是我最好的选择。

我想将此代码添加到我的index.js文件中

var nodemailer = require('nodemailer');

function emailsender(){
    var transporter = nodemailer.createTransport({
      service: 'gmail',
      auth: {
        user: 'email@email.com',
        pass: 'password'
      }
    });

    var mailOptions = {
      from: 'email@email.com',
      to: 'email.email.com',
      subject: 'Sending Email using Node.js',
      text: 'That was easy!'
    };

    transporter.sendMail(mailOptions, function(error, info){
      if (error) {
        console.log(error);
      } else {
        console.log('Email sent: ' + info.response);
      }
    });
    return "success";
}

所以我认为我也需要在package.json文件中包含Nodemailer软件包,代码取自https://github.com/nodemailer/nodemailer/blob/master/package.json

{
    "name": "nodemailer",
    "version": "6.1.0",
    "description": "Easy as cake e-mail sending from your Node.js applications",
    "main": "lib/nodemailer.js",
    "scripts": {
        "test": "grunt"
    },
    "repository": {
        "type": "git",
        "url": "https://github.com/nodemailer/nodemailer.git"
    }, 
    ...
    ...
    ...

但是我不能将其添加到我已经存在的package.json文件中,因为名称和版本等都是唯一的密钥,不能重复。

我主要的三个问题是:

  1. 我可以在Alexa中使用Nodemailer吗?
  2. 如何将Nodemailer下载到Alexa开发人员控制台中?
  3. 是否需要将Nodemailer package.json插入现有的package.json中?

1 个答案:

答案 0 :(得分:0)

在“代码”菜单的Alexa开发人员控制台(托管技能)中,将“ nodemailer”添加到依赖项(在package.json中)。

"dependencies": {
  "nodemailer": "^6.1.0"
}

然后将代码添加到index.js,让我们看看会发生什么。

您必须熟悉以下几件事:Amazon lambda和基本节点编程。