РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpMaAt 118 of 201 menu
◀ ▶

Вложение в Nest

Текстовое уведомление уже уходит, но иногда нужно приложить короткий файл: выписку, код или заметку. Пока письмо состоит только из text, дополнительные данные клиент не получит в одном сообщении.

У объекта для sendMail есть массив attachments. Каждый элемент описывает имя файла и содержимое: строку можно передать в поле content без чтения с диска.

Покажем на примере постов:

import { Injectable } from '@nestjs/common'; import { MailerService } from '@nestjs-modules/mailer'; @Injectable() export class PostService { mailerService: MailerService; constructor(mailerService: MailerService) { this.mailerService = mailerService; } async sendWithNote(to: string, subject: string) { const note = 'Краткая памятка к материалу.'; return this.mailerService.sendMail({ to, subject, text: 'Материал и памятка во вложении.', attachments: [ { filename: 'note.txt', content: note, }, ], }); } }

Контроллер по-прежнему передаёт получателя и тему:

import { Body, Controller, Post } from '@nestjs/common'; import { PostService } from './post.service.js'; @Controller('posts') export class PostController { postService: PostService; constructor(postService: PostService) { this.postService = postService; } @Post('mail') sendMail( @Body('to') to: string, @Body('subject') subject: string, ) { return this.postService.sendWithNote(to, subject); } }

Добавьте в WorkerService одно вложение из строки в памяти и отправьте письмо через WorkerController.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить