【问题标题】:Email node credentials is not persisting in node-red电子邮件节点凭据未保留在节点红色中
【发布时间】:2017-12-07 05:46:13
【问题描述】:

我在 node-red 中使用“电子邮件”输出节点并发送电子邮件,但它突然停止工作并给我以下错误:

错误:邮件命令失败:530-5.5.1 需要身份验证。了解更多 at530 5.5.1 https://support.google.com/mail/?p=WantAuthError p19sm7126611pfj.140 - gsmtp

我使用的“函数”节点具有所有必需的变量msg.tomsg.frommsg.topic

【问题讨论】:

  • 您需要有效的 gmail 用户名和密码才能使用 gmail 的邮件服务器。还请点击错误消息中的链接,因为它解释了如何启用“不太安全的应用程序”
  • @Lisa 你解决了这个问题吗?我现在遇到了同样的问题,当我部署时凭据不会持续存在 - 它变为空白并且身份验证失败。有没有办法在不同的节点上手动设置凭据,以便我们可以持久化凭据?

标签: node-red


【解决方案1】:

于是我钻入了node-red-node-email模块[https://www.npmjs.com/package/node-red-node-email]并查找了代码,发现:

...

var globalkeys = RED.settings.email || require(process.env.NODE_RED_HOME+"/../emailkeys.js");

...

var flag = false;
        if (this.credentials && this.credentials.hasOwnProperty("userid")) {
            this.userid = this.credentials.userid;
        } else {
            if (globalkeys) {
                this.userid = globalkeys.user;
                flag = true;
            }
        }
        if (this.credentials && this.credentials.hasOwnProperty("password")) {
            this.password = this.credentials.password;
        } else {
            if (globalkeys) {
                this.password = globalkeys.pass;
                flag = true;
            }
        }
        if (flag) {
            RED.nodes.addCredentials(n.id,{userid:this.userid, password:this.password, global:true});
        }

https://github.com/node-red/node-red-nodes/blob/master/social/email/61-email.js#L25

因此,如果我们在 RED.settings(此文件 - https://github.com/node-red/node-red/blob/master/settings.js)中设置电子邮件凭据,它将使用该电子邮件凭据正确发送电子邮件:

email: {
  user: 'emailaccount@google.com',
  pass: 'password'
}

它会在所有环境中持续存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多