Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeEmailer:当密码字符串包含'#';_Javascript_Node.js_Email_Nodemailer - Fatal编程技术网

Javascript NodeEmailer:当密码字符串包含'#';

Javascript NodeEmailer:当密码字符串包含'#';,javascript,node.js,email,nodemailer,Javascript,Node.js,Email,Nodemailer,我在nodejs中有一个应用程序,它使用nodeEmailer发送电子邮件。除了密码字符串中包含“#”外,其他一切都正常工作 下面是我的代码 var secure = config.secure ? "smtps":"smtp"; var conURL = secure+"://"+config.user+":"+config.pass+"@"+config.host+"/?pool=false"; try { const transport = nodemailer.createTr

我在nodejs中有一个应用程序,它使用nodeEmailer发送电子邮件。除了密码字符串中包含“#”外,其他一切都正常工作

下面是我的代码

var secure = config.secure ? "smtps":"smtp";
var conURL = secure+"://"+config.user+":"+config.pass+"@"+config.host+"/?pool=false";

try {
    const transport = nodemailer.createTransport(conURL);

    // verify connection configuration
    transport.verify(function(error, success) {
    if (error) {
        console.log(error.message) // Error : Connection Timeout
    }
});
当密码包含“#”字符时,我收到一个连接超时错误。我用@、!、$等等,一切正常


有人能帮上忙吗?

您可能需要对URI进行编码

所以,我想像这样的东西应该会起作用

secure+"://"+config.user+":"+encodeURIComponent(config.pass)+"@"+config.host+"/?pool=false"
编辑:尝试使用配置对象而不是像这样的URI

const config = {
    pool: false,
    host: config.host,
    secure: config.secure,
    auth: {
        user: config.user,
        pass: config.pass
    }
};

try {
    const transport = nodemailer.createTransport(conURL);

    // verify connection configuration
    transport.verify(function(error, success) {
    if (error) {
        console.log(error.message) // Error : Connection Timeout
    }
});

当我只对密码字段进行编码时,它似乎可以工作。我将在测试后更新一些其他特殊的字符,也就是ooops。。。事实上,这是正确的。我的错。您只需在密码上使用encodeURIComponent。这两种解决方案都有帮助吗?让我们来看看。