Я только начинаю изучать javascript, и я хотел попробовать создать небольшие проекты, чтобы они были на мокрой ноге. Как часть моего первого удара, я создаю инструмент командной строки, который будет отправлять PDF-вложения. Сценарий должен отправить электронное письмо с вложением pdf на основе аргумента, переданного в javascript. Я нашел code, перейдя по ссылке и изменив его, чтобы удовлетворить мои потребности, так как я хотел принимать аргументы из командной строки. Я включил код, который я использую ниже. Предполагается, что имя файла pdf (test.pdf) будет передано в качестве аргумента, а затем отправит электронное письмо назначенным получателям с прикрепленным файлом. Если я запустил его с моим кодом, как показано, я получаю письмо, но вложение получило сообщение «undefined.pdf» и не может быть открыто.nodemailer: не удается отправить вложение в формате PDF
Он работает только в том случае, если я изменяю строку path: '/home/user/attachments/' + myArgs[3],
как path: '/home/user/attachments/test.pdf',
, которая разрушает точку сценария, потому что я не хочу жестко кодировать имя файла в «пути» для присоединения файла pdf.
(Для тестирования я запускаю скрипт из того же каталога, что и вложения \ home \ user \ attachments.)
Может ли кто-нибудь указать, что я делаю неправильно? Я новичок в JavaScript, так что я предполагаю, что я что-то очевидное отсутствует:] ....
var nodemailer = require('nodemailer');
var myArgs = process.argv.slice(2);
console.log('myArgs: ', myArgs);
// create reusable transporter object using SMTP transport
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: '[email protected]',
pass: 'secret'
}
});
// NB! No need to recreate the transporter object. You can use
// the same transporter object for all e-mails
// setup e-mail data with unicode symbols
var mailOptions = {
from: 'Somebody <[email protected]>', // sender address
to: '[email protected], [email protected]', // list of receivers
subject: 'Hello', // Subject line
text: 'Hello world', // plaintext body
html: '<b>Hello world</b>', // html body
attachments: [
{ // filename and content type is derived from path
filename: myArgs[3],
path: '/home/user/attachments/' + myArgs[3],
contentType: 'application/pdf'
}
]
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
ТИА, Крис
Что выводит строка 'console.log' (строка 3)? –