Lorsque j'essaie d'envoyer un e-mail à partir d'un serveur node.js à l'aide de nodemailer, j'obtiens l'erreur suivante:
ERROR: Send Error: No recipients defined
Mon code est le suivant:
côté client:
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.');
}
});
du côté serveur:
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();
});
});
Ceci est conforme aux documents nodemailer, et la prise de contact SMTP se termine toujours avec succès, donc je sais que ce n'est pas un problème avec l'objet transporteur.
Ce type d'erreur se produit lorsque la valeur affectée à la clé to
dans l'objet donné à la méthode sendMail
est vide. Comme nous le voyons, cela signifie que quelque chose ne va pas et que vous n'obtenez pas les mêmes données côté serveur que celles que vous avez envoyées au client.
Je recommande également de vérifier si vous accédez à une bonne variable sur votre action côté serveur. Probablement POST sont accessibles de différentes manières - veuillez vérifier cela dans la documentation de votre framework.
Par exemple, dans HapiJS, je récupère POST params de cette manière:
exports.someAction = function (request, reply) {
var postParams = request.payload
}