将表单数据邮寄到我的收件箱的应用程序在Firebase上无法正常运行

use*_*189 9 node.js firebase nodemailer google-cloud-functions

我想我在这里错过了很简单的东西.我有一个简单的单页node.js应用程序,它使用nodemailer将任何表单数据通过电子邮件发送到我的收件箱.

我的index.js文件:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var nodemailer = require('nodemailer');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

var transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'myemail@gmail.com',
        pass: 'mypassword'
    }
});

app.use(express.static('public')); //public folder with my html files
app.get('', function (req, res) {
    res.sendFile(__dirname + "/");
})

app.post('/', function (req, res) {
    response = {
        name: req.body.name,
        email: req.body.email,
        message: req.body.message
    };
    var mailClient = {
        from: 'myemail@gmail.com',
        to: 'myemail@gmail.com',
        subject: `Message from ${response.name}`,
        text: 'MyMessage'
    };
    transporter.sendMail(mailClient, function (error, info) {
        if (error) {
            console.log(error); //not happening
        } else {
            res.redirect("/success.html"); //also not happening
        }
    });
})

var server = app.listen(80, function () {
    var host = server.address().address
    var port = server.address().port
    console.log("App listening at http://%s:%s", host, port)
})
Run Code Online (Sandbox Code Playgroud)

当我在我的本地计算机上使用npm start根目录运行它时,应用程序运行完全正常localhost.Nodemailer正常工作; 当我提交时,我的表单数据会通过电子邮件发送给我自己,然后我会被重定向到我的成功页面.

但是,当我将其部署到Firebase时,似乎nodemailer部分不起作用.页面加载我的静态文件,但当我尝试通过表单提交任何内容时,页面只是刷新(就像你有一个带有HTML的提交按钮),而不是重定向到我的成功页面和电子邮件数据.

我的代码中是否需要更改以使其与firebase一起使用?

编辑 - 没有日志: 在此输入图像描述

Swi*_*vel 3

Google 需要付费帐户才能使用“出站网络”。免费套餐不允许您拨打外线电话。这包括将邮件发送到远程邮件服务器(例如将电子邮件发送到 Yahoo、Gmail 或 Outlook 帐户)。

请参阅他们的定价页面了解更多信息。

寻找“出站网络”。

如果您想利用 Gmail 的 API,您应该仍然能够使用nodemailerfirebase 功能并实现您想要的目标并保留在免费套餐中。存储库中已经提供了一个完整的工作示例firebase-samples我想强调一下链接教程提到的内容,即 Gmail 确实有您应该注意的电子邮件发送配额。