Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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-MS Exchaneg服务器-错误无法验证第一个证书_Javascript_Node.js_Nodemailer - Fatal编程技术网

Javascript NodeEmailer-MS Exchaneg服务器-错误无法验证第一个证书

Javascript NodeEmailer-MS Exchaneg服务器-错误无法验证第一个证书,javascript,node.js,nodemailer,Javascript,Node.js,Nodemailer,我正在尝试使用out office MS Exchange邮件服务器从NodeJS发送电子邮件。用下面的代码。并得到错误 我们的管理员说不需要证书 错误:- $ node test2.js Error : { Error: unable to verify the first certificate at TLSSocket.onConnectSecure (_tls_wrap.js:1048:34) at TLSSocket.emit (events.js:182:13)

我正在尝试使用out office MS Exchange邮件服务器从NodeJS发送电子邮件。用下面的代码。并得到错误

我们的管理员说不需要证书

错误:-

$ node test2.js
Error :  { Error: unable to verify the first certificate
    at TLSSocket.onConnectSecure (_tls_wrap.js:1048:34)
    at TLSSocket.emit (events.js:182:13)
    at TLSSocket._finishInit (_tls_wrap.js:628:8) code: 'ESOCKET', command: 'CONN' }
"use strict";
const nodemailer = require("nodemailer");

async function main() {
    try {
        // create reusable transporter object using the default SMTP transport
        let transporter = nodemailer.createTransport({
            host: 'host',
            port: 25,
            secure : false, // true for 465, false for other ports
            auth: {
                user: 'user',
                pass: 'password'
            }
        });

        // setup email data
        let mailOptions = {
            from: 'me@email.com',
            to: 'me@email.com',
            subject: 'Hey you, awesome!',
            html: '<b>This is bold text</b>',
            text: 'This is text version!'
        };

        // send mail with defined transport object
        let info = await transporter.sendMail(mailOptions)
        console.log("Message sent: %s", JSON.stringify(info));

    } catch (error) {
        console.log('Error : ', error);
    }
}

main(); // For testing
节点代码:-

$ node test2.js
Error :  { Error: unable to verify the first certificate
    at TLSSocket.onConnectSecure (_tls_wrap.js:1048:34)
    at TLSSocket.emit (events.js:182:13)
    at TLSSocket._finishInit (_tls_wrap.js:628:8) code: 'ESOCKET', command: 'CONN' }
"use strict";
const nodemailer = require("nodemailer");

async function main() {
    try {
        // create reusable transporter object using the default SMTP transport
        let transporter = nodemailer.createTransport({
            host: 'host',
            port: 25,
            secure : false, // true for 465, false for other ports
            auth: {
                user: 'user',
                pass: 'password'
            }
        });

        // setup email data
        let mailOptions = {
            from: 'me@email.com',
            to: 'me@email.com',
            subject: 'Hey you, awesome!',
            html: '<b>This is bold text</b>',
            text: 'This is text version!'
        };

        // send mail with defined transport object
        let info = await transporter.sendMail(mailOptions)
        console.log("Message sent: %s", JSON.stringify(info));

    } catch (error) {
        console.log('Error : ', error);
    }
}

main(); // For testing
“严格使用”;
const nodemailer=require(“nodemailer”);
异步函数main(){
试一试{
//使用默认SMTP传输创建可重用的传输对象
让transporter=nodeEmailer.createTransport({
主机:'主机',
港口:25,
安全:false,//对于465为true,对于其他端口为false
认证:{
用户:“用户”,
通行证:“密码”
}
});
//设置电子邮件数据
让邮件选项={
发件人:'me@email.com',
致:'me@email.com',
主题:“嘿,你真棒!”,
html:“这是粗体文本”,
text:'这是文本版本!'
};
//使用定义的传输对象发送邮件
let info=wait transporter.sendMail(邮件选项)
log(“发送的消息:%s”,JSON.stringify(info));
}捕获(错误){
console.log('Error:',Error);
}
}
main();//用于测试

以下代码更改修复了该问题。将其添加到createTransport()中

代码:-

   // create reusable transporter object using the default SMTP transport
    let transporter = nodemailer.createTransport({
        host: 'host',
        port: 25,
        secure : false, // true for 465, false for other ports
        auth: {
            user: 'user',
            pass: 'password'
        },
        tls: {
            // do not fail on invalid certs
            rejectUnauthorized: false
        },
    });

您正在使用哪台主机输入公司IP地址或计算机名try requireTLS:true var smtpTransport=nodemailer.createTransport({host:'smtp.gmail.com',端口:'587',端口:false,requireTLS:true,身份验证:{user:'user',pass:'pass'}});将主机更改为您正在使用的任何主机X,仍然是同一个问题伙伴。我可以给您工作代码,但不需要解释,因为我看不出您的代码有什么问题。您为我节省了大量时间调试我们的整个AWS基础设施。谢谢您!您节省了时间兄弟!