NodeMailer - 没有收件人定义错误
NodeMailer - No recipients defined error
我正在尝试使用 Node 邮件程序发送电子邮件。我的设置如下。收件人来自 Mongoose 模型。在模型 Rentals.createdbyemail 中包含用户的电子邮件地址。我已经仔细检查以确保电子邮件地址包含在 Rentals.createdbyemail 中并且确实如此。
出于某种原因,当此代码运行时出现错误:
Error: No recipients defined
我将如何更改我的代码以更正此错误?谢谢你的帮助!
注意:如果我只在 "to" 字段中输入电子邮件地址,它就会起作用。
var smtpTrans = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'myemail@gmail.com',
pass: 'password'
}
});
var mailOptions = {
to: Rentals.createdbyemail,
from: 'email',
subject: 'subject',
text: 'This is the email content'
};
smtpTrans.sendMail(mailOptions, function(err) {
console.log('email sent')
if (err){
console.log(err)
}
});
收件人来自猫鼬模型:
var rentalsSchema = new mongoose.Schema({
reserved: {type: Boolean, default: false},
createdby: String,
createdbyemail: String,
reservedby: String,
reservedemail: String,
author: {
id:{
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String,
email: String
},
module.exports = mongoose.model("Rentals", rentalsSchema);
在您的代码中缺少分配收件人电子邮件地址,因为您使用了 Rentals.createdbyemail
这不是有效的分配方式。所以你应该从数据库中检索 createdbyemail
然后使用检索电子邮件。
我不知道你想从哪里发送电子邮件(意味着哪个功能或如何从数据库中检索)。所以我展示了如何检索和发送电子邮件
赞:
从 Rentals
table
中检索电子邮件
// {field: value} to get specific Rental
Rentals.findOne({field: value}, function(err, rental) {
if(rental) {
var smtpTrans = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'myemail@gmail.com',
pass: 'password'
}
});
var mailOptions = {
to: rental.createdbyemail,
from: 'email',
subject: 'subject',
text: 'This is the email content'
};
smtpTrans.sendMail(mailOptions, function(err) {
console.log('email sent')
if (err){
console.log(err)
} else {
return from here
}
});
}
});
我正在尝试使用 Node 邮件程序发送电子邮件。我的设置如下。收件人来自 Mongoose 模型。在模型 Rentals.createdbyemail 中包含用户的电子邮件地址。我已经仔细检查以确保电子邮件地址包含在 Rentals.createdbyemail 中并且确实如此。
出于某种原因,当此代码运行时出现错误:
Error: No recipients defined
我将如何更改我的代码以更正此错误?谢谢你的帮助!
注意:如果我只在 "to" 字段中输入电子邮件地址,它就会起作用。
var smtpTrans = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'myemail@gmail.com',
pass: 'password'
}
});
var mailOptions = {
to: Rentals.createdbyemail,
from: 'email',
subject: 'subject',
text: 'This is the email content'
};
smtpTrans.sendMail(mailOptions, function(err) {
console.log('email sent')
if (err){
console.log(err)
}
});
收件人来自猫鼬模型:
var rentalsSchema = new mongoose.Schema({
reserved: {type: Boolean, default: false},
createdby: String,
createdbyemail: String,
reservedby: String,
reservedemail: String,
author: {
id:{
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String,
email: String
},
module.exports = mongoose.model("Rentals", rentalsSchema);
在您的代码中缺少分配收件人电子邮件地址,因为您使用了 Rentals.createdbyemail
这不是有效的分配方式。所以你应该从数据库中检索 createdbyemail
然后使用检索电子邮件。
我不知道你想从哪里发送电子邮件(意味着哪个功能或如何从数据库中检索)。所以我展示了如何检索和发送电子邮件
赞:
从 Rentals
table
// {field: value} to get specific Rental
Rentals.findOne({field: value}, function(err, rental) {
if(rental) {
var smtpTrans = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'myemail@gmail.com',
pass: 'password'
}
});
var mailOptions = {
to: rental.createdbyemail,
from: 'email',
subject: 'subject',
text: 'This is the email content'
};
smtpTrans.sendMail(mailOptions, function(err) {
console.log('email sent')
if (err){
console.log(err)
} else {
return from here
}
});
}
});