@nestjs-modules/mailer을(를) 3.x에서 4.x로 업그레이드하기
@nestjs-modules/mailer 3.0.2과 4.0.0의 공개 API를 TypeScript 타입에서 자동으로 비교한 결과입니다. 시그니처 변경은 호환성이 깨질 가능성이 있다는 뜻이며 확정은 아닙니다.
요약
| 삭제된 import 경로 | 0 |
|---|---|
| 삭제된 export | 0 |
| 변경된 시그니처 | 0 |
| 삭제된 클래스·인터페이스 멤버 | 1 |
| 변경된 클래스·인터페이스 멤버 | 3 |
| 새로 지원 중단됨 | 0 |
| 요구 사항 변경 (engines, peer 의존성) | 3 |
| 새 export | 64 |
삭제된 export
감지되지 않았습니다.
변경된 시그니처
감지되지 않았습니다.
삭제된 클래스·인터페이스 멤버
| member | import | 이전 |
|---|---|---|
MailerService.executeSend | @nestjs-modules/mailer | any |
변경된 클래스·인터페이스 멤버
| member | 이전 | 이후 |
|---|---|---|
MailerService.constructor | (mailerOptions: MailerOptions, transportFactory: MailerTransportFactory, eventService?: MailerEventService | undefined): MailerService | (mailerOptions: MailerOptions, transportFactory?: MailerTransportFactory | undefined, eventService?: MailerEventService | undefined, moduleRef?: any): MailerService |
MailerTestModule.static register | (options?: Partial<{ template: { dir?: string | undefined; adapter?: any; options?: any; }; }> | undefined): DynamicModule | (options?: Omit<MailerOptions, "transport" | "transports"> | undefined): DynamicModule |
MailerEventService.constructor | (eventEmitter?: any): MailerEventService | (eventEmitter?: MailerEventEmitter | undefined, moduleRef?: any): MailerEventService |
새로 지원 중단됨
감지되지 않았습니다.
요구 사항 변경 (engines, peer 의존성)
| 이전 | 이후 | |
|---|---|---|
peerDependencies.handlebars | >=4.7.9 | >=4.7.10 |
peerDependencies.@nestjs/mail | — | >=0.0.1 |
peerDependencies.@nestjs/outbox | — | >=0.1.3 |
새 export (64)
| import | export | kind |
|---|---|---|
@nestjs-modules/mailer | html | function |
@nestjs-modules/mailer | signV4 | function |
@nestjs-modules/mailer | Mailable | interface |
@nestjs-modules/mailer | SafeHtml | class |
@nestjs-modules/mailer | MailQuery | interface |
@nestjs-modules/mailer | htmlToText | function |
@nestjs-modules/mailer | isSafeHtml | function |
@nestjs-modules/mailer | unsafeHtml | function |
@nestjs-modules/mailer | MailerError | class |
@nestjs-modules/mailer | TestMailbox | class |
@nestjs-modules/mailer | CapturedMail | class |
@nestjs-modules/mailer | LogTransport | class |
@nestjs-modules/mailer | MailableData | type |
@nestjs-modules/mailer | RenderedMail | interface |
@nestjs-modules/mailer | SesTransport | class |
@nestjs-modules/mailer | SigV4Options | interface |
@nestjs-modules/mailer | SigV4Request | interface |
@nestjs-modules/mailer | FileTransport | class |
@nestjs-modules/mailer | MailerPreview | type |
@nestjs-modules/mailer | toMailerError | function |
@nestjs-modules/mailer | AwsCredentials | interface |
@nestjs-modules/mailer | BrevoTransport | class |
@nestjs-modules/mailer | SigV4Signature | interface |
@nestjs-modules/mailer | LOCAL_TRANSPORT | variable |
@nestjs-modules/mailer | MailableContent | type |
@nestjs-modules/mailer | MailableContext | interface |
@nestjs-modules/mailer | MailerSmtpError | class |
@nestjs-modules/mailer | ResendTransport | class |
@nestjs-modules/mailer | parseRetryAfter | function |
@nestjs-modules/mailer | validateMessage | function |
@nestjs-modules/mailer | InterceptOptions | interface |
@nestjs-modules/mailer | MailgunTransport | class |
@nestjs-modules/mailer | isTransientError | function |
@nestjs-modules/mailer | MailerEventRecord | interface |
@nestjs-modules/mailer | PostmarkTransport | class |
@nestjs-modules/mailer | SendGridTransport | class |
@nestjs-modules/mailer | mailerChannelName | function |
@nestjs-modules/mailer | MailerEventEmitter | interface |
@nestjs-modules/mailer | MailerMessageError | class |
@nestjs-modules/mailer | MailerRetryOptions | interface |
@nestjs-modules/mailer | MailerTimeoutError | class |
@nestjs-modules/mailer | UnsubscribeOptions | interface |
@nestjs-modules/mailer | HttpSentMessageInfo | interface |
@nestjs-modules/mailer | LogTransportOptions | interface |
@nestjs-modules/mailer | MailableSendOptions | type |
@nestjs-modules/mailer | MailerPreviewModule | class |
@nestjs-modules/mailer | MailerProviderError | class |
@nestjs-modules/mailer | MailerTemplateError | class |
@nestjs-modules/mailer | SesTransportOptions | interface |
@nestjs-modules/mailer | FileTransportOptions | interface |
@nestjs-modules/mailer | HttpTransportOptions | interface |
@nestjs-modules/mailer | MAILER_EVENT_EMITTER | variable |
@nestjs-modules/mailer | MailerPreviewOptions | interface |
@nestjs-modules/mailer | mayHaveBeenDelivered | function |
@nestjs-modules/mailer | BrevoTransportOptions | interface |
@nestjs-modules/mailer | HttpProviderTransport | class |
@nestjs-modules/mailer | MailerConnectionError | class |
@nestjs-modules/mailer | SuppressedMessageInfo | interface |
@nestjs-modules/mailer | MAILER_PREVIEW_OPTIONS | variable |
@nestjs-modules/mailer | ResendTransportOptions | interface |
@nestjs-modules/mailer | MailgunTransportOptions | interface |
@nestjs-modules/mailer | PostmarkTransportOptions | interface |
@nestjs-modules/mailer | SendGridTransportOptions | interface |
@nestjs-modules/mailer | MailerRecipientsRejectedError | class |
두 버전 사이의 changelog
패키지 작성자가 공개한 텍스트를 그대로 표시합니다.
4.0.0
### Major Changes
- [#1353](https://github.com/nest-modules/mailer/pull/1353) [`c8c0423`](https://github.com/nest-modules/mailer/commit/c8c0423749bd8f0f7d0f247e62ee5ab7a55f6535) Thanks [@juandav](https://github.com/juandav)! - v4: everything the official `@nestjs/mail` offers and more, without dropping anything v3 supports. Every capability is optional: use nodemailer, the built-in HTTP providers or `@nestjs/mail`'s transports; send directly, through BullMQ or through `@nestjs/outbox`; call `sendMail`, mail classes or the official `Mailer` over this module.
**Breaking changes** (see the [migration guide](https://nest-modules.github.io/mailer/guide/migration)):
- Transient failures are retried by default (3 attempts with backoff); `retry: false` restores v3. A timeout or a dropped connection while the message was being handed over is retried only when the email has a stable Message-ID (`idempotencyKey`), so nothing is sent twice. `sendTimeout` applies per attempt.
- Errors from transports are typed (`MailerSmtpError`, `MailerTimeoutError`, … all `MailerError`), keeping nodemailer's fields and the original as `cause`; `wrapErrors: false` restores v3.
- Emails without a text part get one derived from the HTML (`textFromHtml: false` to opt out), and messages are validated before sending (`validate: false` to opt out).
- `MailerTestModule` delivers to a `TestMailbox` (no stream transport; `info.message` uses CRLF line endings) and defaults `retry` to `false`.
- `MailerPreviewModule` is on by default only when `NODE_ENV` is `development` or `test`.
- Event payloads carry `attempt`, `permanent`, `transporterName` and `durationMs`; `MailerEventService` takes its emitter through `MAILER_EVENT_EMITTER`, and `EventEmitter2` is found automatically (in v3 it was never injected).
- `MailableContext.to` is `{ name?, address }[]`, the same shape as `@nestjs/mail`.
**New**
- Mail classes (`mailerService.send(WelcomeMail, { to, data })`) compatible with `@nestjs/mail`'s, with dependencies resolved from the whole app, and `render()` to render without sending.
- Retries with backoff and error classification (nodemailer, HTTP and AWS SDK errors), failover between transporters, `AbortSignal`, `idempotencyKey`, and graceful shutdown that waits for sends in flight (`shutdownTimeout`).
- Zero-dependency HTTP transports: Resend, Postmark, SendGrid, SES (SigV4), Mailgun and Brevo.
- The `html` tagged template (`unsafeHtml()` for trusted markup), `htmlToText()` and message validation.
- `intercept` (redirect recipients in staging), `suppress` (suppression lists) and one-click `unsubscribe` (RFC 8058).
- `TestMailbox` with assertions, `FileTransport` and `LogTransport` (with a warning when used in production) and `MailerPreviewModule` to preview emails in the browser.
- `events$`, `node:diagnostics_channel` publishing (credentials redacted), and `RETRY`, `FAILOVER` and `SUPPRESSED` events.
- BullMQ: permanent failures fail the j이 데이터를 AI 에이전트에 제공하세요
Vigia는 무료 MCP 서버입니다. 코딩 에이전트가 코드를 작성하기 전에 버전, 호환성을 깨는 변경, 취약점을 확인합니다. 가입도 API 키도 필요 없습니다.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Cursor에 추가VS Code에 추가★ GitHub에서 스타 누르기
그 밖의 MCP 클라이언트
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }에이전트 스킬(SKILL.md): 에이전트에게 Vigia를 언제 쓸지 알려 줍니다 · 풀 리퀘스트용 GitHub Action
자주 묻는 질문
@nestjs-modules/mailer을(를) 3에서 4(으)로 업그레이드할 때 호환성이 깨지는 변경은 무엇인가요?
@nestjs-modules/mailer 3.0.2과 4.0.0 사이에서 Vigia는 삭제된 export 0개, 변경된 시그니처 0개, 삭제되거나 변경된 클래스·인터페이스 멤버 4개를 찾았습니다.
@nestjs-modules/mailer 4에서 지원 중단된 것은 무엇인가요?
@nestjs-modules/mailer 4.0.0에서 export 또는 멤버 0개가 새로 지원 중단으로 표시되었습니다.
에이전트용
GET https://vigia.coredls.cloud/v1/packages/npm/@nestjs-modules/mailer/upgrade?from=3.0.2&to=4.0.0