如何通过自己的smtp在firebase https功能中发送电子邮件

如何通过自己的smtp在firebase https功能中发送电子邮件,firebase,smtp,google-cloud-functions,nodemailer,Firebase,Smtp,Google Cloud Functions,Nodemailer,我正面临(对我来说)一些奇怪的行为。 我正在尝试在firebase应用程序中创建反馈表单 这是一个简单的表单,当用户提交它时应该给我发送一封电子邮件 我在firebase应用程序中创建了onCall函数 当我通过firebase experimental:functions:shell对其进行本地测试时,我收到了一封电子邮件,但部署的电子邮件总是失败: { code: "ECONNECTION" command: "CONN" errno: "ENOTFOUND" } 职能机构: 由于我不知

我正面临(对我来说)一些奇怪的行为。
我正在尝试在firebase应用程序中创建反馈表单
这是一个简单的表单,当用户提交它时应该给我发送一封电子邮件

我在firebase应用程序中创建了
onCall
函数

当我通过
firebase experimental:functions:shell对其进行本地测试时,我收到了一封电子邮件,但部署的电子邮件总是失败:

{
code: "ECONNECTION"
command: "CONN"
errno: "ENOTFOUND"
}
职能机构:

由于我不知道firebase的一些限制,部署的函数似乎无法访问smtp服务器

编辑:
我用我在firebase中使用的gmail smtp和我的gmail凭据测试了部署的功能,它运行正常

文档上说,我可以在其端口不是25的情况下使用自定义smtp。
如果有人能说明这一点,我将不胜感激。

您需要了解“火焰”或“火焰”定价计划

事实上,免费的“Spark”计划“只允许对谷歌拥有的服务发出出站网络请求”。请参阅(将鼠标悬停在“云功能”标题后的问号上)

由于您的SMTP服务器不是谷歌所有的服务,您需要切换到“Flame”或“Blaze”计划。

您需要使用“Flame”或“Blaze”定价计划

事实上,免费的“Spark”计划“只允许对谷歌拥有的服务发出出站网络请求”。请参阅(将鼠标悬停在“云功能”标题后的问号上)


由于您的SMTP服务器不是谷歌所有的服务,因此您需要切换到“Flame”或“Blaze”计划。

您使用哪种付款计划?@RenaudTarnec spark(这是一个免费计划),因此,此限制基于计划:-/您是基于哪种付款计划?@RenaudTarnec spark(这是一个免费计划),因此,此限制基于计划:-/
function feedbacks(data)
{

    let email = createEmail(data);

    let transport = nodemailer.createTransport({
        host: 'smtp.yandex.ru',
        port: 465,
        secure: true,
        // tried this one, but without success too
        //tls:{ secureProtocol: "TLSv1_method" },
        auth: {
            user: 'xxxx@xxxx',
            pass: 'xxxx'
        }
    });

    return new Promise((resolve, reject) => {
        transport.sendMail(email, err => {
            if (err == null) {
                resolve(true);
            } else {
                reject(new functions.https.HttpsError('internal', 'failed', err))
            }
        });
    });

}