Khi cố gắng để gửi một email từ một máy chủ sử dụng Node.js nodemailer, tôi nhận được lỗi sau:NodeMailer Không nhận Defined
ERROR: Send Error: No recipients defined
Mã của tôi là như sau:
phía khách hàng:
var mailData = {
from: "[email protected]",
to: "[email protected]",
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.');
}
});
phía máy chủ:
var nodemailer = require('nodemailer');
app.post('/sendEmail', function(mailData) {
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '[email protected]',
pass: 'mypassword'
},
});
transporter.sendMail(mailData, function(error, info) {
if (error) {
console.log(error);
return;
}
console.log('Message sent');
transporter.close();
});
});
Điều này phù hợp với tài liệu nodemailer và bắt tay SMTP luôn kết thúc thành công, vì vậy tôi biết rằng đây không phải là vấn đề với đối tượng transporter.
Bạn đã kiểm tra sao 'mailData' var nhìn giống như trên phía máy chủ ngay trước khi chạy' phương pháp sendMail'? Nó giống như ở phía khách hàng? Mọi thứ đều ổn và loại lỗi này được ném khi trường 'tới' trống. – kkochanski
@kkochanski bạn nói đúng. có một cái gì đó sai với ajax trên phía khách hàng, như khi tôi làm console.log (mailData.to) trên máy chủ tôi nhận được không xác định, do đó, vấn đề là thực sự với cuộc gọi ajax của tôi và không nodemailer chính nó. –
Tôi trả lời, hy vọng rằng sẽ giúp! – kkochanski