在Google的Dialogflow上使用nodemailer向用户发送电子邮件时出现问题

时间:2019-02-17 15:57:52

标签: actions-on-google nodemailer

触发意图后,我正在使用nodemailer向用户发送电子邮件。 我正在为使用nodemailer发送电子邮件的功能创建一个承诺。 使用node index.js运行时,会发送电子邮件,但是当部署到firebase并在模拟器上对Google控制台上的操作调用模拟器的意图时,会出现webhook错误

  

格式错误的响应
  由于语音响应为空,无法将Dialogflow响应解析为AppResponse。

这是我的代码:

当用户调用此意图时,他们应该收到我的电子邮件。

let sendMails = () => {
    return new Promise((resolve, reject) => {
        const transporter = nodemailer.createTransport({
            service: 'gmail',
            auth: {
                user: 'my email',
                pass: 'password'
            }
        });

        let mailOptions = {
            from: 'my email',
            to: 'user's email',
            subject: 'something',
            text: 'here is the email'
        };

        transporter.sendMail(mailOptions, (error, info) => {
            if (error) {
                throw new Error("Error has come");
            } else {
                let answer = info.response;
                return resolve(answer);
                // console.log('Email sent: ' + info.response);
            }
        });
    }).catch(error => {
        console.log(error);
        throw new Error("Error is coming")
    })

}

这是目的:

app.intent('nda - yes', conv => {
    return sendMails().then((answer)=> {
        return conv.ask(`<speak>Done. Email is sent. Check your inbox.</speak>`)
    }) 
})`

0 个答案:

没有答案