最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

节点管理器中的{“code”:“ECONNECTION”,“command”:“CONN”}

运维笔记admin9浏览0评论

节点管理器中的{“code”:“ECONNECTION”,“command”:“CONN”}

节点管理器中的{“code”:“ECONNECTION”,“command”:“CONN”}

我创建了firebase HTTP云功能,在生成的链接上发送GET请求时发送邮件,我使用nodemailer发送简单邮件。我正在使用从Google OAuth 2.0 Playground生成的客户端ID,客户端密钥和刷新令牌,并生成访问令牌以对Gmail进行身份验证。

    const functions = require('firebase-functions');
    const user_name     = '[email protected]';
    const refresh_token = '1/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
    let access_token  = '';
    const client_id     = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
    const client_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXX';

    const email_to = '[email protected]';

    const nodemailer = require('nodemailer');

    let transporter = nodemailer
        .createTransport({
            service: 'Gmail',
            auth: {
                type: 'OAuth2',
                clientId: client_id,
                clientSecret: client_secret
            }
        });
    transporter.on('token', token => {
        console.log('A new access token was generated');
        console.log('User: %s', token.user);
        access_token = token.accessToken
        console.log('Access Token: %s', token.accessToken);
        console.log('Expires: %s', new Date(token.expires));
    });
    // setup e-mail data with unicode symbols
    let mailOptions = {
        from    : user_name, // sender address
        to      : email_to, // list of receivers
        subject : 'Hello ✔', // Subject line
        text    : 'Hello world ?', // plaintext body
        html    : '<b>Hello world ?</b>', // html body

        auth: {
            user         : user_name,
            refreshToken : refresh_token,
            accessToken  : access_token,
            expires      : 1494388182480
        }
    };

    // send mail with defined transport object
    exports.mail = functions.https.onRequest((req, res) => {
        transporter.sendMail(mailOptions).then( r => {
            return res.send(error);
        }).catch(e =>{
            return res.send(e);
        });
    });

我一直收到错误:{“code”:“ECONNECTION”,“command”:“CONN”}从邮递员发送GET请求时

我发现transporter.on('token', ()=>{})没有做任何事情,它完全被我的代码逃脱了。

那么如何生成access_token?

回答如下:

显然,nodemailer不在firebase云功能中工作。

当我在express本地运行时它起作用了

发布评论

评论列表(0)

  1. 暂无评论