Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 使用createTestAccount()的NodeEmailer状态代码500_Javascript_Node.js_Nodemailer - Fatal编程技术网

Javascript 使用createTestAccount()的NodeEmailer状态代码500

Javascript 使用createTestAccount()的NodeEmailer状态代码500,javascript,node.js,nodemailer,Javascript,Node.js,Nodemailer,我正在使用Nodemailer页面的默认代码(由我添加的控制台): nodeEmailer.createTestAccount((错误,帐户)=>{ 控制台日志(err); //使用默认SMTP传输创建可重用的传输对象 让transporter=nodeEmailer.createTransport({ 主机:“smtp.ethereal.email”, 港口:587, 安全:false,//对于465为true,对于其他端口为false 认证:{ user:account.user,//生成的

我正在使用Nodemailer页面的默认代码(由我添加的控制台):

nodeEmailer.createTestAccount((错误,帐户)=>{
控制台日志(err);
//使用默认SMTP传输创建可重用的传输对象
让transporter=nodeEmailer.createTransport({
主机:“smtp.ethereal.email”,
港口:587,
安全:false,//对于465为true,对于其他端口为false
认证:{
user:account.user,//生成的ethereal用户
pass:account.pass//生成的ethereal密码
}
});
});
它返回以下错误:

错误:无效状态代码500
在ClientRequest。(/Users/angelodias/GIT/bootcamp/04-iniciando-back-end/node_-modules/nodemailer/lib/fetch/index.js:221:23)
在ClientRequest.emit(events.js:223:5)
在ClientRequest.EventEmitter.emit(domain.js:475:20)
在HTTPParser.parserOnIncomingClient[作为onIncoming](_http_client.js:583:27)
在HTTPParser.parserOnHeadersComplete(_http_common.js:115:17)
在TLSSocket.socketOnData(_http_client.js:456:22)
在TLSSocket.emit(events.js:223:5)
在TLSSocket.EventEmitter.emit(domain.js:475:20)
在addChunk(_stream_readable.js:309:12)
在readableAddChunk(_stream_readable.js:290:11){
键入:“FETCH”,
sourceUrl:'https://api.nodemailer.com/user'
}
我做错了什么?有什么错误吗

我尝试了.then().catch(),它捕获了相同的错误


运行Node v12.14.1和Nodemailer 6.4.6时,我认为主要的问题是您在代码中的函数内调用了
Nodemailer.createTransport

在代码中,转运体应该是一个常量。并且必须在您发送电子邮件时调用

以下是当前工作代码的示例:

mailssender.js


这里的
sendmail
express

中的一个中间件函数,我认为主要的问题是您在代码中的函数内调用了
nodemailer.createTransport

在代码中,转运体应该是一个常量。并且必须在您发送电子邮件时调用

以下是当前工作代码的示例:

mailssender.js


这里的
sendmail
express

的一个中间件功能,我不认为他的问题与传输有关。我们也在一个简单的
createTestAccount
上看到了这个确切的错误。这就是错误的来源。我不认为他的问题与交通有关。我们也在一个简单的
createTestAccount
上看到了这个确切的错误。这就是错误的来源。我们现在也看到了这个错误。在过去的24小时内,这种情况似乎已经开始持续发生。在我们的使用中,我们所做的只是通过
createTestAccount
创建一个测试帐户,而不是实际使用传输部分。(我们只需要验证调用的SMTP设置。)我很有信心,NodeEmailer方面发生了一些变化。对于可能会出现这种情况的人,NodeEmailer的GitHub存储库中出现了一个问题:我们现在也看到了这个错误。在过去的24小时内,这种情况似乎已经开始持续发生。在我们的使用中,我们所做的只是通过
createTestAccount
创建一个测试帐户,而不是实际使用传输部分。(我们只需要验证呼叫的SMTP设置。)我很有信心,NodeEmailer方面发生了一些变化。对于可能在这里结束的人,NodeEmailer的GitHub存储库中出现了一个问题:
const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
        user: process.env.SMTPUSER,
        pass: process.env.SMTPPASS
    },
    logger: false, // log to console
    debug: false // include SMTP traffic in the logs
});

exports.sendEmail = function(req, res) {
    const mailOptions = {
        from: process.env.SMTPUSER,
        subject: 'My site mail sender',
        text: 'Mensagem de: ' + req.body.nome + ', email: [' + req.body.email + '] ' + req.body.mensagem,
        to: process.env.SMTPRECIPIENT
    }
    transporter.sendMail(mailOptions).then((trans) => {
        res.status(200);
        res.json(trans);
        res.end();
    }).catch((error) => {
        res.status(500);
        res.json(error);
        res.end();
    });
}