Я работаю над простым webhook в Express, чтобы отправить PDF через Mailgun на определенное событие. Однако всякий раз, когда я пытаюсь отправить его, я получаю эту ошибку: {[Ошибка: отсутствует параметр from] statusCode: 400}. Я тестировал его с помощью простых файлов .txt, и он работает нормально, поэтому я предполагаю, что он имеет какое-то отношение к вложению PDF. Мой код:400 Ошибка при попытке отправить PDF через NodeMailer Mailgun Transport
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var nodemailer = require('nodemailer');
var PDFDocument = require('pdfkit');
var mg = require('nodemailer-mailgun-transport');
var fs = require('fs');
app.use(bodyParser.json());
app.post('/', function(req, res) {
generatePDF(req.body.line_items);
if (req.body.line_items) {
sendMail();
res.send('OK');
}
});
app.listen(3030, function() {
console.log('test app listening on port 3030');
});
function generatePDF(lineItems) {
var doc = new PDFDocument();
var writeStream = fs.createWriteStream('mailer/output.pdf');
doc.pipe(writeStream);
for (item in lineItems) {
for (key in item) {
doc.text(item[key]);
}
}
console.log("doc: " + doc);
doc.end();
}
function sendMail() {
var auth = {
auth: {
api_key: 'my-key',
domain: 'my-domain'
}
}
var transporter = nodemailer.createTransport(mg(auth));
var mailOptions = {
from: 'my-email',
to: 'their-email',
subject: 'test',
html: '<b>this is a test</b>',
attachments: [
{
filename: 'output.pdf',
path: 'mailer/output.pdf',
content: 'output mailer'
}
],
}
transporter.sendMail(mailOptions, function(error, info){
console.log('mail sent');
if (error) {
return console.error(error)
}
console.log('success!', info);
})
}
Любая помощь была бы высоко оценена!
Попробуйте удалить опору «содержимого» из объекта вложения в массиве вложений. Просто догадка. –