NodeMailer 未定义收件人
NodeMailer No Recipients Defined
尝试使用 nodemailer 从 node.js 服务器发送电子邮件时,出现以下错误:
ERROR: Send Error: No recipients defined
我的代码如下:
客户端:
var mailData = {
from: "myemail@gmail.com",
to: "someoneelse@something.com",
subject: "test",
text: "test email"
};
$.ajax({
type: 'POST',
data: mailData,
contentType: 'application/json',
url: 'http://localhost:8080/sendEmail',
success: function(mailData) {
console.log('successfully posted to server.');
}
});
服务器端:
var nodemailer = require('nodemailer');
app.post('/sendEmail', function(mailData) {
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'myemail@gmail.com',
pass: 'mypassword'
},
});
transporter.sendMail(mailData, function(error, info) {
if (error) {
console.log(error);
return;
}
console.log('Message sent');
transporter.close();
});
});
这与 nodemailer 文档一致,SMTP 握手总是成功完成,所以我知道这不是传输对象的问题。
当分配给 sendMail
方法的对象中的键 to
的值为空时,会发生这种错误。正如我们所看到的,这意味着发生了错误,并且您在服务器端没有获得与您在客户端发送的相同的数据。
我还建议检查您是否在服务器端操作中访问正确的变量。可能 POST 参数可以不同的方式访问 - 请在您的框架文档中查看。
例如,在 HapiJS 中,我以这种方式检索 POST 参数:
exports.someAction = function (request, reply) {
var postParams = request.payload
}
尝试使用 nodemailer 从 node.js 服务器发送电子邮件时,出现以下错误:
ERROR: Send Error: No recipients defined
我的代码如下:
客户端:
var mailData = {
from: "myemail@gmail.com",
to: "someoneelse@something.com",
subject: "test",
text: "test email"
};
$.ajax({
type: 'POST',
data: mailData,
contentType: 'application/json',
url: 'http://localhost:8080/sendEmail',
success: function(mailData) {
console.log('successfully posted to server.');
}
});
服务器端:
var nodemailer = require('nodemailer');
app.post('/sendEmail', function(mailData) {
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'myemail@gmail.com',
pass: 'mypassword'
},
});
transporter.sendMail(mailData, function(error, info) {
if (error) {
console.log(error);
return;
}
console.log('Message sent');
transporter.close();
});
});
这与 nodemailer 文档一致,SMTP 握手总是成功完成,所以我知道这不是传输对象的问题。
当分配给 sendMail
方法的对象中的键 to
的值为空时,会发生这种错误。正如我们所看到的,这意味着发生了错误,并且您在服务器端没有获得与您在客户端发送的相同的数据。
我还建议检查您是否在服务器端操作中访问正确的变量。可能 POST 参数可以不同的方式访问 - 请在您的框架文档中查看。
例如,在 HapiJS 中,我以这种方式检索 POST 参数:
exports.someAction = function (request, reply) {
var postParams = request.payload
}