gpt4 book ai didi

javascript - 在回调中发送电子邮件时 Nodemailer 不工作

转载 作者:行者123 更新时间:2023-11-30 05:34:17 26 4
gpt4 key购买 nike

以下是通过忘记密码命中发送电子邮件的代码,它不起作用,但是如果通过文件运行相同的代码它正在发送电子邮件..让我知道我在回调使用方面做错了什么。

以下是代码,可以正常工作但发送电子邮件 -

app.post('/forget', function(req, res){
var userEmail = req.body.email;
User.findOne({email: userEmail}, function(err, user){
if (err) {
res.send({"message": "Wrong!", "err": err, "status_code": "500"});
}
else{
var password = "12345";
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "XXXXX@gmail.com",
pass: "YYYYY"
}
});
var mailOptions = {
from: "Team | <XXXXX@gmail.com>",
to: user.email,
subject: "Password Change",
text: "Hello world",
html: "Your password changed successfully."+ "Your new password is "+ "<style='color: red;'>"+ password +"</style>" // html body
};
console.log(mailOptions);
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
});

user.password = password;
user.save(function(err){
if (err) return handleError(err);
else return res.send({"message": "success", "data": user, "status_code": "200"});
});
}
});
});

它正在抛出错误-

{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }

仅供引用 - 我在代码上方使用 var nodemailer = require("nodemailer"); 所以情况并非如此。

工作代码-

现在,如果我将相同的代码放在一个文件中并通过 node mail.js 命令运行,那么邮件将成功发送。

让我知道我在这里做错了什么

工作代码(只是重复的代码)

  var password = "12345";
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "XXXXX@gmail.com",
pass: "YYYYY"
}
});
var mailOptions = {
from: "Team | <XXXXX@gmail.com>",
to: user.email,
subject: "Password Change",
text: "Hello world",
html: "Your password changed successfully."+ "Your new password is "+ "<style='color: red;'>"+ password +"</style>" // html body
};
console.log(mailOptions);
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
});

最佳答案

这不是防火墙问题。我正在使用 linemanjs,它通过代理访问 api,目前 Node 邮件程序不支持代理。

Nodemailer does not support proxies and currently there is no plan to add any support for these, sorry.

引用 - Nodemailer Issue With Proxy

作为修复,我在我的客户端应用程序(lineman 应用程序)上安装了 nodemailer 模块,并将数据发送到另一个应用程序并接收 token ,在此基础上我通过 nodemailer 发送电子邮件。

关于javascript - 在回调中发送电子邮件时 Nodemailer 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24926146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com