node.js - 使用 Firebase Cloud Functions 时 Nodemailer queryA EREFUSED localhost

标签 node.js firebase google-cloud-functions nodemailer

只要在 Firebase 数据库中创建了新订单,我就会尝试向管理员帐户发送电子邮件。我为此使用了 Cloud Functions 和 Nodemailer,但出现以下错误:

Error: queryA EREFUSED localhost at QueryReqWrap.onresolve [as oncomplete] (dns.js:213:19)

这是代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const nodemailer = require('nodemailer');
admin.initializeApp();

/**
* Here we're using Gmail to send 
*/
let transporter = nodemailer.createTransport({
    service: 'smtp.gmail.com',
    port: 465,
    secure: true,
    auth: {
        user: 'myemail@gmail.com',
        pass: 'mypass'
    }
});

exports.sendMail = functions.database.ref('/Order/{orderId}').onCreate((snapshot, context) =>{
    const dest = 'destination@gmail.com';

    const mailOptions = {
        from: 'Risal Fajar <noreply@bukakata.com>',
        to: dest,
        subject: 'I\'M A PICKLE!!!',
        html: `<p style="font-size: 16px;">Pickle Riiiiiiiiiiiiiiiick!!</p>
            <br />
            <img src="https://images.prod.meredith.com/product/fc8754735c8a9b4aebb786278e7265a5/1538025388228/l/rick-and-morty-pickle-rick-sticker" />
        `
    };

    // returning result
    return transporter.sendMail(mailOptions).then(() => {
        console.log('Mail sent to ', dest);
    });
});

我不知道为什么错误显示 localhost 即使我输入了 smtp.gmail.com

编辑:我添加了 transport.verify(),这就是结果

{ Error: queryA EREFUSED localhost at QueryReqWrap.onresolve [as oncomplete] (dns.js:213:19) errno: 'EREFUSED', code: 'EDNS', syscall: 'queryA', hostname: 'localhost', command: 'CONN' }

最佳答案

修复了

我通过将传输器配置(更改服务名称)更改为:

let transporter = nodemailer.createTransport({
    service: 'gmail',
    port: 465,
    secure: true,
    auth: {
        user: 'myemail@gmail.com',
        pass: 'mypass'
    }
});

关于node.js - 使用 Firebase Cloud Functions 时 Nodemailer queryA EREFUSED localhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59341238/

相关文章:

Javascript 闭包没有按预期工作

java - Firebase Android ListView 未显示

javascript - 向新用户发送电子邮件 firebase

node.js - 为什么这个可调用的云函数失败并返回 "app":"MISSING"?

jquery - 在 Ubuntu 14.04 上通过 npm 安装 jsdom 的问题

javascript - webRTC-没有从其他同行获得流和冰候选人

javascript - 如何在 promise 链中间成功循环

android - 如何动态地将数据从 firebase 添加到 graphview?

ios - 如何创建使用自定义 token 登录的 FIRUser?

firebase - 我可以在 Google Analytics 中跟踪我的 Firebase 功能吗?