Страница моего сайта о карьере. Пользователю необходимо отправить свой профиль, а затем профиль (doc или pdf) необходимо отправить в виде вложения в электронное письмо, нажав кнопку «Отправить».Технологии Я использую Angular6, NodeJs, Express и Nodemailer для отправки электронной почты.
Вот мой мир HTML-кода (careers.html),
<form (ngSubmit)="sendData()" >
<textarea [(ngModel)]="user.message"></textarea>
<input type="file" (change)="userProfile($event)" >
<small>Upload .docx or pdf file</small>
<button >Submit</button>
</form>
немного кода ts (careers.ts),
user = {
message: '',
fileContent :''
};
userProfile(event: any) {
if (event.target.files && event.target.files[0]) {
var reader = new FileReader();
reader.onload = (event: any) => {
this.user.fileContent = event.target.result;
}
reader.readAsDataURL(event.target.files[0]);
}
sendData() {
this.careersService.sendWithAttachment(this.user);
}
здеськласс обслуживания (service.ts),
sendWithAttachment(userData) {
this.http.post("http://localhost:3000/uploadfile", userData
)
.subscribe(
data => {
console.log("Sent Request is successful ", data);
},
error => {
console.log("Error", error);
}
);
}
наконец, файл js (app.js)
var mailOptions = {
from: '"User" <mail@gmail.com>', // sender address
to: "mail@mail.com", // list of receivers
subject: "Mail from Careers",
text: text,
html: html, // html body
attachments: [ {
filename: 'profile.pdf',
content: req.body.fileContent,
contentType: 'application/pdf'
}]
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
Теперь я могу получать электронную почту с вложением, но это приложение пустое или повреждено,Любая помощь очень ценится.